权限在C(linux)中使用popen时出现问题

时间:2011-06-20 02:03:28

标签: c linux permissions

我正在尝试使用/proc/net/dev-r--r--r-- 1 root root 0权限访问popen个文件。代码如下:

main(){
FILE *f;
f=popen("/proc/net/dev","r");
pclose(f);}

在编译后以root身份登录运行程序,我明白了:

  

sh:/ proc / net / dev:权限被拒绝。

你能帮助我解决这个问题吗? 谢谢

3 个答案:

答案 0 :(得分:3)

我认为你正在以错误的方式看待它,popen是从应用程序打开一个管道。 /proc/net/dev不是应用程序,而是文件。试着看看fopen。

f=fopen("/proc/net/dev", "r");
fclose(f);

答案 1 :(得分:1)

popen()用于打开到另一个进程的管道,提供的路径必须是可执行文件,而不是设备条目。您可能需要open()fopen()

答案 2 :(得分:0)

使用read;更多信息类型man在终端读取