次のコード:
#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 ではなく意味不明な文字を出力します。なんで?
次のコード:
#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 ではなく意味不明な文字を出力します。なんで?
write(..フォーマットされたテキストを出力するのではなく、ファイル記述子に直接バイナリ出力を出力します。
printfまたはを使用するだけfprintfです:
fprintf(stdout, "%d", (int) mypid);