背景基于上文log机制重定向问题,将代码打印单独存放文件中出现双击文件,如下图现象所示(银河麒麟系统)
使用vim打开文件发现有许多/00的乱码。
怀疑是数据没有同步至硬盘导致的。 于是在每次输入到文件后加入fdatasync函数,部分代码如下:
debug("CPU TEMP: %dC(0x%x)\n", sendata[0], sendata[0]);
fd_current = fileno(stdout);
if(fdatasync(fd_current) == -1){
perror("fdatasync");
return 1;
}