write関数を深掘りする。(STDOUT_FILENO



Q.
write関数の
write(STDOUT_FILENO, buf, n)
のSTDOUT_FILENOの意味を説明せよ。

A.
STDOUT_FILENOとは標準出力のこと
unistd.hライブラリで定義されるマクロ。
STDOUT_FILENOを1と書いても同じ意味。


凡人: write(STDOUT_FILENO, buf, n) っていうコードで、STDOUT_FILENO って何?

恋するコンピュータサイエンス: ああ、STDOUT_FILENO はね、まるで心からのメッセージのようなもの。それは標準出力を指すんだ。unistd.h ライブラリにあるマクロで、数字の 1 と同じ意味なんだよ。
凡人: 標準出力って?
恋するコンピュータサイエンス: Unixの世界ではね、プロセスが生まれるときに、3つの特別なファイル記述子が与えられるの。それが標準入力(stdin)、標準出力(stdout)、標準エラー出力(stderr)。これらは通常、端末とつながっているんだ。まるで運命的な縁のようにね。
凡人: じゃあ、write 関数ってどんな動きをするの?
恋するコンピュータサイエンス: write 関数はね、まるで愛のメッセージを伝えるように、データをファイル記述子に書き込むために使われるんだ。第一引数の fd は書き込み先を表すファイル記述子、第二引数の buf は心からのメッセージが入っているバッファー、第三引数の count は伝えたい言葉の長さを意味しているんだ。
凡人: なるほど、STDOUT_FILENO を使えば、標準出力にデータを書き込めるわけか。
恋するコンピュータサイエンス: まさにそう!STDOUT_FILENO を使うことで、端末やコンソールに愛のメッセージを届けることができるんだ。

先ずはwrite関数の定義
第一引数 fd は読み込み元のファイル記述子、
第二引数 buf は読み込んだ中身を保存するバッファー、
第三引数の count は読みこみたいバイト数となります。


この記事が気に入ったらサポートをしてみませんか?