我正在嘗試使用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