printbyte in c

Programing/C언어 | 2010/06/28 03:01 | adioshun
//PrintByte("test", hj_uid, 128);

void PrintBYTE(char *msg, char *Data, int DataLen) {
int idx;
fprintf(stdout, "%5s =", msg);
for( idx=0; idx<(int)DataLen; idx++) {
if( (idx==0) || ((idx%16)!=0) )
fprintf(stdout, " 0x%.2x", Data[idx]); //fprintf(stdout, " %.2x", Data[idx]);
else
fprintf(stdout, "\n\t0x%.2x", Data[idx]); //fprintf(stdout, "\n\t%.2x", Data[idx]);
}
fprintf(stdout, "\n");
}



//PrintByte("data_out", data_out, snd_msg_len);
int PrintByte(char *str, unsigned char *bytes, int bytes_len)
{
  char tmp;
  unsigned char *log_str;
  int i;
  log_str = (unsigned char *)malloc(strlen(str)+ bytes_len*12 + 1 + 7*(bytes_len/5+1));

  strcpy(log_str, str);
  sprintf(log_str+strlen(log_str), "\n001 :");

  for(i=0;i<bytes_len;i++){
    if(('a'<=*(bytes+i)&&*(bytes+i)<='z')||('A'<=*(bytes+i)&&*(bytes+i)<='Z')||('0'<=*(bytes+i)&&*(bytes+i)<='9'))
      tmp = *(bytes+i);
    else
      tmp = ' ';
    sprintf(log_str+strlen(log_str), "[%02x|%c|%03d]  ",*(bytes+i), tmp, *(bytes+i));
    if(i&&(i+1)%5==0) sprintf(log_str+strlen(log_str), "\n%03d :",((i+1)/5)+1);
  }

fprintf(stdout, "!!!!!!!!!%s",log_str);

}

//PrintByte("data_out", data_out, snd_msg_len); //16바이트 16진수만 표현
int PrintByte(char *str, unsigned char *bytes, int bytes_len)
{
  char tmp;
  unsigned char *log_str;
  int i;
  log_str = (unsigned char *)malloc(strlen(str)+ bytes_len*12 + 1 + 7*(bytes_len/5+1));

  strcpy(log_str, str);
  sprintf(log_str+strlen(log_str), "\n000 :");

  for(i=0;i<bytes_len;i++){
    if(('a'<=*(bytes+i)&&*(bytes+i)<='z')||('A'<=*(bytes+i)&&*(bytes+i)<='Z')||('0'<=*(bytes+i)&&*(bytes+i)<='9'))
      tmp = *(bytes+i);
    else
      tmp = ' ';
    sprintf(log_str+strlen(log_str), "0x%.2x ",*(bytes+i), tmp, *(bytes+i));
    if(i&&(i+1)%16==0) sprintf(log_str+strlen(log_str), "\n%03d :", i+1);
  }

fprintf(stdout, "\n\n>>>%s\n",log_str);
printf("-%s_len [%d]\n",str, bytes_len);

}
2010/06/28 03:01 2010/06/28 03:01
Trackback address :: http://4ellene.net/tt/trackback/1315

Comments List

Write a comment.

[로그인][오픈아이디란?]