作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下代码:
...
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 字符平台),在所有终端或文本编辑器中可见。
希望这有帮助。
关于c - fwrite a pid_t 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13094897/
我是一名优秀的程序员,十分优秀!