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(..フォーマットされたテキストを出力するのではなく、ファイル記述子に直接バイナリ出力を出力します。

printfまたはを使用するだけfprintfです:

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