|
ru.unix- RU.UNIX ---------------------------------------------------------------------- From : Yury Lazarev 2:5020/400 27 Apr 2000 14:18:46 To : All Subject : Получить список процессов из C -------------------------------------------------------------------------------- Каким образом можно вытащить командную строку, с которой были запущены процессы в Unix (наподобие того, что выдает команда ps). Имена активных процессов, вроде бы нашел как извлечь: #include <sys/param.h> #include <sys/user.h> #include <sys/sysctl.h> #include <fcntl.h> #include <kvm.h> kvm_t *kd; int main (argc, argv) int argc; char *argv[]; { struct kinfo_proc *kp; int c, n; kd = kvm_open(NULL, NULL, NULL, O_RDONLY, NULL); if (!kd) { perror("unable to init kvm"); exit(1); } kp = kvm_getprocs(kd, KERN_PROC_ALL, atoi(argv[1]), &n); if (!kp) printf("NULL\n"); printf("%d\n",n); for (c = 0; c < n; c++) printf("N# %d %d cmd: %s\n", c, kp[c].kp_proc.p_pid, kp[c].kp_proc.p_comm); } Может быть кто-нибудь подскажет, как это проще сделать? Пытался разобраться с исходниками ps - дохлый номер (маловато знаний). В man как-то весьма невнятно описаны функции kvm. Где бы найти какое-нибудь более подробное описание, желательно с примерами. Заранее всем благодарен. --- ifmail v.2.15dev5 * Origin: Rostelecom/Internet Centre (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix/2080ea053f5c.html, оценка из 5, голосов 10
|