所以我创建了一个新文件:
fd = open("tester.txt", O_CREAT | O_RDWR);
然后使用系统调用write向它添加一些信息。但当我试图从文件中读取信息时,它就无法生成。使用我发现的终端,打开文件的唯一方法是使用sudo,并且成功地编写了内容。但是,我的程序不能是根。所以,我如何打开文件,写一些内容到它,而不关闭C程序输出文件。
最佳答案
缺少将文件模式指定为创建打开调用的第三个参数;请尝试以下操作:
fd = open("tester.txt", O_CREAT | O_RDWR, 0644);
然后,应该使用模式
-rw-r--r--
创建文件,以便您自己的用户可以打开它进行读写。否则,它可能会得到一些随机权限,即---------
,并且只有根用户可以打开它进行读取(至少不需要chmodid)。