我正在编写一个应用程序,它将与我的自定义USB串口设备进行通信(仅写入)。这是一个Cocoa(OS X)应用程序,与此写入相关的部分采用POSIX风格编码。
我已经解决了大部分问题,但存在空(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被解释为流的停止)。
如何解决这个问题?