これは、関数的に意味しています。私はFILE *をfdに変換するためにfilenoを使用していますが、エラーなしで返しますが、filenoから返された値にpreadを使用すると、ファイル記述子にエラーが発生します。 IE:FILE *の内容をファイル記述子にコピーする方法はありますか?
私はこのエラーを知らせるために何が起こっているのか分かりません。
これは、関数的に意味しています。私はFILE *をfdに変換するためにfilenoを使用していますが、エラーなしで返しますが、filenoから返された値にpreadを使用すると、ファイル記述子にエラーが発生します。 IE:FILE *の内容をファイル記述子にコピーする方法はありますか?
私はこのエラーを知らせるために何が起こっているのか分かりません。
私の推測では、fout
は有効なFILE *ポインタではありません。あなたはそれを確認しましたか?戻り値fileno
を確認しましたか?
filenoは正の整数を返しました。うまくいきました。 –
いいえ、それは正常に動作しているというわけではありません。定義されていない動作が呼び出されたことを意味します。 –
マニュアルページを読んでいたとき、-1以外の数字が返ってきたら、それは正常に機能したと思いましたか? –
fileno()
から返品を確認しましたか?
fileno() man page
「オープン」で両端を開くことはできませんか? –
'pread' *は* 9を返すか、-1を返して' errno'を9に設定しますか?前者の場合、それは読みに9バイト残っていたことを意味しています。 -1を返し、 'errno'が9(' EBADF')ならば、すでに 'fclose'd'fout'があります。 – torek
'fout = fopen(" path "、" rw ");'を使うのではないのですか?あなたが投稿したコードは 'fout'が未定義であることを示していますので、何か有用であれば恐ろしいことになります。 –