【发布时间】:2014-06-16 17:48:46
【问题描述】:
如何使用 getpid() 函数将 PID 写入文件?
我尝试将其转换为 char 并写入 int 数组,但均无效。
【问题讨论】:
-
man7.org/linux/man-pages/man2/getpid.2.html你很可能没有正确使用它
如何使用 getpid() 函数将 PID 写入文件?
我尝试将其转换为 char 并写入 int 数组,但均无效。
【问题讨论】:
在 C 中,从 int 转换为 char 是不够的。转换改变了编译器处理指针的方式,它如何尊重它以及如何计算指针算术。它不会改变内容。
如果你想打印一个int,你必须把它转换成一个字符串。
你可以使用:
fprintf(fd, "%d", getpid());
【讨论】:
int fd;
FILE *somefile;
//text
fprintf(somefile, "%d", getpid());
//binary
pid_t pid = getpid();
fwrite(&pid, sizeof(pid), 1, somefile);
write(fd, &pid, sizeof(pid));
【讨论】: