2012-04-29 5 views
0

これは、関数的に意味しています。私はFILE *をfdに変換するためにfilenoを使用していますが、エラーなしで返しますが、filenoから返された値にpreadを使用すると、ファイル記述子にエラーが発生します。 IE:FILE *の内容をファイル記述子にコピーする方法はありますか?

私はこのエラーを知らせるために何が起こっているのか分かりません。

+0

「オープン」で両端を開くことはできませんか? –

+3

'pread' *は* 9を返すか、-1を返して' errno'を9に設定しますか?前者の場合、それは読みに9バイト残っていたことを意味しています。 -1を返し、 'errno'が9(' EBADF')ならば、すでに 'fclose'd'fout'があります。 – torek

+2

'fout = fopen(" path "、" rw ");'を使うのではないのですか?あなたが投稿したコードは 'fout'が未定義であることを示していますので、何か有用であれば恐ろしいことになります。 –

答えて

1

私の推測では、foutは有効なFILE *ポインタではありません。あなたはそれを確認しましたか?戻り値filenoを確認しましたか?

+0

filenoは正の整数を返しました。うまくいきました。 –

+1

いいえ、それは正常に動作しているというわけではありません。定義されていない動作が呼び出されたことを意味します。 –

+0

マニュアルページを読んでいたとき、-1以外の数字が返ってきたら、それは正常に機能したと思いましたか? –

関連する問題