Pregunta: | 10416 - ACCESAR LA TABLA DE PROCESOS DE UNIX |
Autor: | jAIME GUERRERO BASTIAS |
Estimados:
Necesito accesar la tabla procesos a través de un programa en "C" sin utilizar en comando "ps" con una funcion del tipo system(). Encontre la función table(), pero solo me entrega el proceso actual. #include #include int main() { int r; struct tbl_procinfo procinfo; r=table(TBL_PROCINFO,getpid(),(char *)&procinfo,1,sizeof(struct tbl_procinfo)); printf ("COMMAND [%s] \n",procinfo.pi_comm); } Gracias |
Respuesta: | Ricardo Ortega |
Una solución larga es tratar los procesos como archivos (en unix/linux todo es un archivo, incluyendo memoria, cpu, procesos, disco, etc.)
primero hecha un vistazo a ver si existe el directorio proc con programas como ls o mc (midnight commander) buscar en el directorio /proc todos los directorios con número son los procesos, dentro de cada proceso existen archivos con su nombre, la imagen del exe, y demás. Necesitas tener privilegios para accesar a otros procesos. También puedes revisar el fuente de linux en www.sourceforge.net Suerte. |