Проблема с разрешением при использовании popen в C (Linux) - PullRequest
2 голосов
/ 20 июня 2011

Я пытаюсь получить доступ к файлу /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 ]

3 голосов
/ 20 июня 2011

Я думаю, что вы смотрите на это неправильно, попен, чтобы открыть канал из приложения./proc/net/dev - это не приложение, а файл.Попробуйте вместо этого взглянуть на fopen.

f=fopen("/proc/net/dev", "r");
fclose(f);
1 голос
/ 20 июня 2011

popen() - для открытия канала другому процессу, указанный путь должен быть к исполняемому файлу, а не к записи устройства. Вы, вероятно, хотите вместо open() или fopen().

0 голосов
/ 20 июня 2011

использовать читать; для более подробной информации наберите man read в терминале

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...