sys / uio.h中的write()返回-1

时间:2010-04-28 10:36:48

标签: c++ g++ ubuntu-9.10 ftp-client x86-64

我正在使用 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,否则返回一个非负整数,它等于写入的字节数。

任何人都知道如何让写入功能起作用?

2 个答案:

答案 0 :(得分:0)

  

出错时,返回-1,并正确设置errno。

也许errno可以给你一些关于错误的提示。

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

read_length是否包含要写入的正确字节数?

答案 1 :(得分:0)

目录和文件是否可以由尝试写入的用户写入?也许尝试在/ tmp中运行它作为测试。