标签: c unbuffered-output
以下代码:
#include <stdio.h> #include <sys/types.h> #include <unistd.h> int main() { pid_t mypid = getpid(); write(1, &mypid, sizeof(pid_t)); return 0; }
打印乱码而不是实际的pid。为什么呢?
答案 0 :(得分:5)
write(..不会打印格式化文本,而是直接将二进制输出打印到文件描述符。
write(..
只需使用printf或fprintf:
printf
fprintf
fprintf(stdout, "%d", (int) mypid);