所以我创建了一个新文件:

 fd = open("tester.txt", O_CREAT | O_RDWR);

然后使用系统调用write向它添加一些信息。但当我试图从文件中读取信息时,它就无法生成。使用我发现的终端,打开文件的唯一方法是使用sudo,并且成功地编写了内容。但是,我的程序不能是根。所以,我如何打开文件,写一些内容到它,而不关闭C程序输出文件。

最佳答案

缺少将文件模式指定为创建打开调用的第三个参数;请尝试以下操作:

fd = open("tester.txt", O_CREAT | O_RDWR, 0644);

然后,应该使用模式-rw-r--r--创建文件,以便您自己的用户可以打开它进行读写。否则,它可能会得到一些随机权限,即---------,并且只有根用户可以打开它进行读取(至少不需要chmodid)。

09-10 00:15
查看更多