У вас есть несколько вариантов в зависимости от того, сколько вы хотите сделать в C.
Самое простое - это использовать system () для запуска команды оболочки (например, той, что я выложил ранее) для выполнения всей партии. system () фактически порождает оболочку, поэтому такие вещи, как перенаправление, будут работать так же, как и из командной строки.
Если вы хотите избежать использования system (), вы можете сделать это самостоятельно, порождая два процесса и связывая их вместе. Посмотрите на pipe () и dup2 (). Вероятно, пустая трата времени.
Вы можете запустить программу ps и проанализировать ее вывод в C. Снова pipe () и dup2 () актуальны. Для фактического разбора я бы просто сделал это, используя обычные процедуры обработки строки C, поскольку это действительно довольно просто. Очевидно, что вместо этого вы можете использовать библиотеку регулярных выражений, но я думаю, что в этом случае это приведет к более сложному коду, чем без него.
Конечно, вы можете сделать все в C, посмотрев файлы в /proc.
.