C - write()系统调用打印乱码而不是pid_t

时间:2015-12-11 23:22:47

标签: 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。为什么呢?

1 个答案:

答案 0 :(得分:5)

write(..不会打印格式化文本,而是直接将二进制输出打印到文件描述符。

只需使用printffprintf

fprintf(stdout, "%d", (int) mypid);