lunes, 8 de marzo de 2010

SYSINFO Y KILL

SYSINFO

USO

Devuelve información sobre estadísticas globales del sistema.

SINOPSIS

#include

int sysinfo(struct sysinfo *info);

DESCRIPCIÓN

struct sysinfo {

long uptime; /* Segundos desde el arranque */

unsigned long loads[3]; /* cargas medias en 1, 5, y 15 min */

unsigned long totalram; /* Memoria principal total útil */

unsigned long freeram; /* Tamaño de memoria disponible */

unsigned long sharedram; /* Cantidad de memoria compartida */

unsigned long bufferram; /* Memoria empleada por búferes */

unsigned long totalswap; /* Tamaño del espacio total swap */

unsigned long freeswap; /* Espacio de swap aún disponible */

unsigned short procs; /* Número de procesos actualmente */

char _f[22]; /* Rellena la struct a 64 bytes */

};

VALOR DEVUELTO

En caso de éxito devuelve 0, en caso de error devuelve -1.

EJEMPLO

#include

#include

int main(){

struct sysinfo s_info;

int error;

error = sysinfo(&s_info);

printf("Codigo de error = %d\n", error);

printf("Uptime = %d\n", s_info.uptime);

printf("Carga: 1 min %d / 5 min %d / 15 min %d\n", s_info.loads[0], s_info.loads[1], s_info.loads[2]);

printf("RAM: total %d / libre %d / compartida %d\n", s_info.totalram, s_info.freeram, s_info.sharedram);

printf("Memoria en bufers = %d\n", s_info.bufferram);

printf("Swap: total %d / libre %d\n", s_info.totalswap, s_info.freeswap);

printf("Numero de procesos = %d\n", s_info.procs);

return(0);

}


KILL

USO

Envía una señal a un evento.

SINOPSIS

#include

#include

int kill(pid_t pid, int sig);

DESCRIPCIÓN

La llamada kill se puede usar para enviar cualquier señal a un proceso o grupo de procesos. Si pid es positivo, entonces la señal sig es enviada a pid. En este caso, se devuelve 0 si hay éxito, o un valor negativo si hay error.

Si pid es 0, entonces sig se envía a cada proceso en el grupo de procesos del proceso actual. Si pid es igual a -1, entonces se envía sig a cada proceso, excepto al proceso 1 (init), vea más abajo. Si pid es menor que -1, entonces se envía sig a cada proceso en el grupo de procesos -pid. Si es 0, entonces no se envía ninguna señal pero todavía se realiza la comprobación de errores.

VALOR DEVUELTO

Si hay éxito, se devuelve cero. Si hay error, se devuelve -1, y se actualiza errno apropiadamente.

ERRORES

EINVAL. Se especificó una señal inválida.

ESRCH. El pid o grupo de procesos no existe. Nótese que un proceso existente podría ser un zombi, un proceso que ya ha sido terminado, pero que aún no se encuentra en espera (wait)".

EPERM. El proceso no tiene permiso para enviar la señal a alguno de los procesos que la recibirán. Para que un proceso tenga permiso para enviar una señal al proceso pid debe tener privilegios de root o el ID de usuario real o efectivo del proceso que envía la señal ha de ser igual al set-user-ID real o guardado del proceso que la recibe.

EJEMPLO

#include

#include

int main (){

int ppid = 0, senal = 0;

printf ("PID: ");

scanf ("%d",&ppid);

printf ("SIGNAL: ");

scanf ("%d",&senal);

kill (ppid,senal);

return 0;

}

No hay comentarios:

Publicar un comentario