#define ErrQuit(fmt, args...) \
do \
{ \
printf("ErrQuit:%s(%d)-%s:\n"fmt"\n:%s\n", __FILE__,__LINE__,__FUNCTION__,##args, strerror(errno)); \
exit(1);\
} while (0)
void bin2text(int fd_s, int fd_d)
{
char file_data_s[1024];
char file_data_d[sizeof(file_data_s)*3];
int i, read_len, write_len;
while ((read_len=read(fd_s, file_data_s, sizeof(file_data_s)))>0)
{
for (i = 0; i < read_len; i++)
{
sprintf(file_data_d + i*3, "%02hhx ", file_data_s[i]);
}
write_len=write(fd_d, file_data_d, read_len*3);
if (write_len<0)
ErrQuit("write dest file failed");
}
if (read_len<0)
ErrQuit("read src file failed");
}
void text2bin(int fd_s, int fd_d)
{
char file_data_s[1024*3];
char file_data_d[1024];
int i, read_len, write_len;
while ((read_len=read(fd_s, file_data_s, sizeof(file_data_s)))>0)
{
for (i = 0; i < read_len; i+=3)
{
file_data_s[i+2] = 0;
file_data_d[i/3]=strtol(file_data_s + i, NULL, 16);
}
write_len=write(fd_d, file_data_d, read_len/3);
if (write_len<0)
ErrQuit("write dest file failed");
}