stdout
LinuxCとの違いを考えていましたSTDOUT_FILENO
。
いくつかの検索作業の後、私は次の結論を導き出します。確認して間違いを修正するのを手伝ってもらえますか?ありがとう
stdout
C言語の標準I/Oストリームに属します。タイプがFILE*で、stdio.hで定義されているタイプSTDOUT_FILENO
、int型を持ち、で定義されunistd.h
ます。LINUXシステムのファイル記述子です。ではunistd.h
、次のように説明されています。
The following symbolic constants shall be defined for file streams: STDERR_FILENO File number of stderr; 2. STDIN_FILENO File number of stdin; 0. STDOUT_FILENO File number of stdout; 1.
したがって、私の意見では、STDOUT_FILENO
システムレベルの呼び出しに属し、ある程度はシステムAPIのようになります。STDOUT_FILENO
システム内の任意のデバイスを記述するために使用できます。
はstdout
より高いレベル(ユーザーレベル?)に配置され、実際にはの詳細をカプセル化しますSTDOUT_FILENO
。stdout
I/Oバッファがあります。
それは彼らの違いについての私の理解です。コメントや訂正をいただければ幸いです。