我有以下代码:
...
printf("Started %d", pid);
FILE * fh;
fh = fopen("run/source.pid", "wb");
fwrite(&pid, sizeof(int), 1, fh);
fclose(fh);
然而,写的 pid 文件写的是行话,而不是整数,虽然 pid_t 只是一个,但我什至为第二个参数int
做绑定,但我遇到了类似的问题。sizeof(pid_t)
有任何想法吗?我在这里先向您的帮助表示感谢。
谢谢
好吧,我不太了解这个问题(上下文太少),但问题可能是您在文本编辑器、终端等中看到该文件。
fwrite() 写入原始数据,例如,假设您有一个 pid 编号,比如说 12,然后您使用 fwrite 写入该编号,如下所示:
fwrite(&pid, sizeof(int), 1, file);
fwrite() 会将一个 32 位整数写入文件file
,也就是说,根据您的处理器类型,一个字节序列如下所示:00 00 00 12
然而
fprintf() 将写入一个字节序列:49 50
(ASCII 字符平台无关)在所有终端或文本编辑器中可见。
希望这可以帮助。