0

Ubuntu Server 9.10 AMD Phenom 2 cpu g++ (Ubuntu 4.4.1-4ubuntu9) 4.4.1 を使用しています。

アプリケーション pftp-shit v 1.11 を実行しようとすると、リモート ファイル リストが (.pftp//pftpfxp-- に) 保存されるまで正常に実行されます。

tcp.cc の次のコードは正常に実行されます。

int outfile_fd = open(name, O_CREAT | O_TRUNC | O_RDWR | O_BINARY)

ファイル記述子int(私の場合は6)を返します-nameは、作成に成功したファイルへの有効なパスを含むchar配列です。そして正常に実行されています:

fchmod(outfile_fd, S_IRUSR | S_IWUSR);

access(name, W_OK)

この問題は、関数の実行中に発生します (sys/uio.h から)。

write(outfile_fd, this->control_buffer, read_length)

これは -1 を返します。何も書き込まれていない場合は -1 が返され、それ以外の場合は、書き込まれたバイト数に等しい負でない整数が返されます。

書き込み機能を機能させる方法を知っている人はいますか?

4

2 に答える 2

0

エラーの場合は -1 が返され、errno が適切に設定されます。

おそらくerrno、何が間違っているかについてのヒントを与えることができます。

write(outfile_fd, this->control_buffer, read_length);

read_length書き込まれる正しいバイト数が含まれていますか?

于 2010-04-28T10:44:58.560 に答える
0

ディレクトリとファイルは、書き込みを試みているユーザーによって確実に書き込み可能ですか? テストとして /tmp で実行してみてください。

于 2010-04-28T13:46:17.867 に答える