В BASH есть команда pstree, которая «рисует» дерево процессов. Мне интересно, что такое функция на языке программирования C?C - эквивалент pstree
Простой пример будет оценен.
В BASH есть команда pstree, которая «рисует» дерево процессов. Мне интересно, что такое функция на языке программирования C?C - эквивалент pstree
Простой пример будет оценен.
Там нет такой «функции» в С. Но вы можете легко программировать что-то, что создает что-то так, используя execl()
/system()
вызовов к ps
или путем чтения файловой системы/ргоса (на Linux).
Оттуда вы можете получить список детей каждого процесса, и для каждого процесса этого списка получите своих детей и т. Д., Начиная с процесса 1 init
.
иначе,
int main() {
system('pstree');
return 0;
}
будет работать :-)
Если вы хотите переопределить его, вы бы лучше последовать совету Карла NORUM к использовать источник, Люк!
... если вы находитесь на платформе, на которой применяются эти системные вызовы. Если нет, вам придется использовать эквивалентные системные вызовы для вашей платформы. – Vicky
нет системных вызовов, которые обрабатывают интроспекцию процесса. Я уверен, что есть некоторые библиотеки, которые обрабатывают это, мы можем найти в google, но это не будет posix. Единственный стандартный способ сделать это - это то, как я дал в своем ответе. (хотя/proc не является стандартным) – zmo
Если вы хотите эту функциональность, почему бы не просто позвонить pstree? – VoronoiPotato
Это открытый исходный код, я уверен, что вы можете его найти и прочитать, как он это делает. –
Как использовать его в C? – user1926550