Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Получить список процессов из C   Yury Lazarev   27 Apr 2000 14:18:46 
Архивное /ru.unix/2080ea053f5c.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional