我正在尝试使用popen
访问/proc/net/dev
文件,其中-r--r--r-- 1 root root 0
权限。该代码是尽可能公平:权限在C(linux)中使用popen时出现问题
main(){
FILE *f;
f=popen("/proc/net/dev","r");
pclose(f);}
登录为根,编译&运行该程序后,我得到这个:
SH:的/ proc /净的/ dev:权限被拒绝。
你能帮我解决这个问题吗? 谢谢
我正在尝试使用popen
访问/proc/net/dev
文件,其中-r--r--r-- 1 root root 0
权限。该代码是尽可能公平:权限在C(linux)中使用popen时出现问题
main(){
FILE *f;
f=popen("/proc/net/dev","r");
pclose(f);}
登录为根,编译&运行该程序后,我得到这个:
SH:的/ proc /净的/ dev:权限被拒绝。
你能帮我解决这个问题吗? 谢谢
popen()
用于打开管道到另一个进程,所提供的路径必须是可执行文件,而不是设备条目。您可能需要open()
或fopen()
。
我认为你看着这个错误的方式,popen是从应用程序打开管道。 /proc/net/dev
不是应用程序,而是文件。试着看看fopen。
f=fopen("/proc/net/dev", "r");
fclose(f);
作为一个侧面说明;你得到的权限被拒绝了,因为popen试图执行没有执行权限的/ proc/net/dev(它不应该这样做)。 – Suroot