开放系统调用中的负返回值; C

时间:2013-07-24 05:34:36

标签: c file proc

我在/proc中创建了一个名为" test"的文件。 (它是在内核中创建的)。该文件存在。当我想在用户级别打开它时,它返回负数。

int fd;
if((fd=open("/proc/test","O_RDONLY"))<0){ 
      perror("open"); 
}

我看到的错误是open: File exists。我见过this question但不是我的情况。

1 个答案:

答案 0 :(得分:3)

你需要括号(现在已在问题中修复),open()的第二个参数不是字符串:

#include <fcntl.h>

int fd;
if ((fd = open("/proc/test", O_RDONLY)) < 0)
    perror("open");

我不相信在/proc文件系统中创建任何类型的文件是个好主意。事实上,我有点惊讶你被允许。如果您正在学习编程为root,我希望您有良好的备份。