我正在编写一些应用程序,它将与我的自定义 USB 串行设备进行通信(只写)。它是 Cocoa (OS X) 应用程序,与本文相关的部分以 POSIX 风格编码。
我几乎解决了所有问题,但遇到了 NULL (0x00) 字符的问题。
例如,让我们说我需要将 5 个字符添加到文件中。
我的代码如下:
char stringAsChar[5];
stringAsChar[0] = 0x77;
stringAsChar[1] = 0x44;
stringAsChar[2] = 0x00; //here is an problem
stringAsChar[3] = 0x05;
stringAsChar[4] = 0xFF;
...
fputs(stringAsChar, file); // write to file
指定索引处的每个字符代表一些寄存器到目标设备的数据。
当流包含我需要作为数据的 0x00 字符时出现问题,写入在那里停止(0x00 解释为流停止)。
如何克服这个问题?
最佳答案
fputs
与 NUL
终止的字符串一起使用。如果要将 NUL
字符写入文件,可以改用 fwrite
:
noOfBytesWritten = fwrite(stringAsChar, 1, noOfBytesToWrite, file);
关于c - 如何将 0x00 写入文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16670323/