如何使用fcntl.h在附加模式下写入文件

时间:2012-10-05 06:50:41

标签: c++ linux

以下是我的代码:

#include <iostream> 
#include <fcntl.h>
#include <unistd.h>
using namespace std; 

int main()
{

int filedesc = open("testfile.txt", O_RDWR | (O_APPEND |O_CREAT) ,S_IRWXO);

    if (filedesc < 0) {
    cout<<"unable to open file";
        return -1;
    }

    if (write(filedesc, "This will be output to testfile.txt", 36) != -1) {
        cout<<"writing";
        close( filedesc );
    }

    return 0;
return 0;

}

如果我第二次运行相同,则o / p是“无法打开文件”。 我做错了吗?

1 个答案:

答案 0 :(得分:5)

这是一个许可问题

尝试更改

S_IRWXO 

 S_IRWXU

它会正常工作

S_IRWXO

读取,写入,执行/搜索其他人

参考http://pubs.opengroup.org/onlinepubs/7908799/xsh/sysstat.h.html