所以我创建了一个新文件:
fd = open("tester.txt", O_CREAT | O_RDWR);
然后使用系统调用 write 我向其中添加了一些信息。但是当我尝试从文件中读取信息时,它无法生成。使用终端我发现,打开文件的唯一方法是使用sudo 并且内容已成功写入。但是,我的程序不能是 root。那么,如何打开文件,向其中写入一些内容,而不关闭 C 程序输出文件。
最佳答案
您没有将文件模式指定为创建打开调用的第三个参数;尝试以下操作:
fd = open("tester.txt", O_CREAT | O_RDWR, 0644);
然后,文件应该以 -rw-r--r--
模式创建,这样你自己的用户就可以打开它进行读写。否则,它可能会以一些随机权限结束,即 ------------
,并且只有 root 可以打开它进行阅读(至少不需要修改它)。
关于c - 如果文件未以 sudo 打开,则系统调用 open C 无法打印文件内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47331344/