c - 如何将0x00写入文件

标签 c cocoa posix stringstream

我正在编写一些应用程序,它将与我的自定义 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 被解释为流的停止)。

如何克服这个问题?

最佳答案

尝试使用 fwrite 代替。它允许您指定写入流的字节数。或者遍历你的角色并使用 fputc

关于c - 如何将0x00写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16670323/

相关文章:

objective-c - INAppStoreWindow 标题栏上的 NSSplitView 分隔符

c++ - 是否可以在 POSIX 系统上部分释放动态分配的内存?

objective-c - 有没有办法检查是否获得了 NSLock?

c - STM32 F411RE Nucleo SPI 支持和编程 PlayStation 2 Controller

C:在函数调用上传递参数时的类型转换

c - 从不兼容的指针类型 C 返回

c - 在 C 中将结构体的成员指向结构体本身

objective-c - 函数内的函数(C/C++ 函数内的 objective-c 函数)

c++ - 音频-视频加密算法

file - Bash,不同文件测试的混淆结果(test -f)