La Web del Programador: Comunidad de Programadores
 
    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.