fileno(FILE *)
であっても ファイル記述子を返す場合があります。stdio のバッファをバイパスしないように十分注意してください。バッファー データ (読み取りまたはフラッシュされていない書き込み) がある場合、ファイル記述子からの読み取り/書き込みによって予期しない結果が生じる可能性があります。
副次的な質問の 1 つに答えるには、ファイル記述子を FILE ポインターに変換するには、fdopen(3)
を使用します。
適切な関数は int fileno(FILE *stream)
です . <stdio.h>
にあります 、および POSIX 標準ですが、標準 C ではありません。