1

以下代码:

#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。为什么?

4

1 回答 1

5

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

只需使用printffprintf

fprintf(stdout, "%d", (int) mypid);
于 2015-12-11T23:29:00.417 回答