2014-09-16 4 views
0

Не совсем уверен, что еще добавить, чем заголовок. Команда «ps -u myusername» показывает все текущие процессы под моим именем учетной записи.Как вызвать команду ps -u Linux/Unix из программы C

Как это назвать в программе на языке C? Это не должно быть сложно, но мне сложно найти документацию онлайн для этого.

Редактировать: Хорошо, давайте сделаем снимок.

x = fork(); //Create a new process fork. 
if(x == 0) { 
    //Then the fork was created successfully. use the new fork to call ps. 
    char *argv[2] = {"-u" ,"myusername"}; 
    execv("/bin/ps", argv); 
} 
+0

Позвольте мне проверить это. Извините, если это дубликат. Наверное, мой Google-Фу не работает! Редактировать: Я не верю, что это дубликат. Другой поток спрашивает, как реализовать ps, я просто спрашиваю, как назвать это (очень простой вопрос, я знаю). – Musicode

+0

Вы хотите запустить команду или хотите получить те же данные, которые извлекает эта команда? Первый включает exec и возможно fork; последний включает в себя запрос операционной системы для данных. – keshlam

+0

Ну, я хочу отобразить вывод ps на терминал, что означает, что мне, вероятно, нужно будет просто запустить команду («не уверен»). – Musicode

ответ

0

http://linux.die.net/man/3/system
http://linux.die.net/man/3/popen
попробовать один из них. Система выполняет команду оболочки без возможности получить результат, кроме как перенаправить файл или fifo. popen - это то, что вы хотите, вы создадите процесс/bin/ps и передаете все данные в вашу программу.

Смежные вопросы