3.305 cursos gratis
6.270.120 alumnos
Publica tu curso gratis
Busca cursos gratis:
Estás aquí: mailxmail > Cursos de Informática > Programación > Procesos en C. Sincronización (segunda parte) > Procesos en C. Función kill

Procesos en C. Sincronización (segunda parte)

Autor: Editorial McGraw-Hill
Curso: 5/5 5/5 (1 opinión) |747 alumnos|Fecha publicación: 21/10/2008

Capítulo 2:

 Procesos en C. Función kill

A. Función kill

La función kill permite enviar una señal a un proceso; si no se especifica cuál, será, por defecto, la señal de terminación. Ésta pondrá fin a aquellos procesos que no la capturen; para los que sí lo hagan y con los que se desee terminar, será necesario enviarles kill con la señal 9, ya que ésta no puede ser ni capturada ni ignorada. Con el mismo fin puede emplearse el comando kill.

La lista completa de señales puede encontrarse en el fichero </usr/include/linux/signal. h>. La principal diferencia entre la función y el comando homónimos reside en que el comando no se utiliza dentro de los programas de aplicación, y sí en la mayoría de las llamadas realizadas desde la línea de comandos.

La definición de la función kill es:

include <signal.h>
int kill (int pid, int sig);

donde pid es el número del proceso al que se quiere enviar la señal. En función del valor de pid, la tarea realizada será diferente:

-  Si pid > 0, la señal sig se envía al proceso con identificador pid.
-  Si pid = -1, la señal sig se envía a cualquier proceso de la tabla de procesos, excepto al primero.
-  Si pid < -1, la señal sig se envía a cualquier proceso del mismo grupo del pid.

Si la operación se realiza con éxito, la función devuelve 0; en caso contrario, el valor devuelto es -1. Se debe tener en cuenta que, cuando se envía la señal a varios procesos, la operación tiene éxito cuando al menos uno de ellos recibe la señal. En este caso, no puede determinarse qué procesos capturaron la señal o si todos lo hicieron.

Los errores más frecuentes se deben, entre otros, al envío de una señal no válida, a que el pid indicado no existe o a que el proceso o procesos a los que se envía la señal no pertenecen a quien intenta enviarles la señal, es decir, que el propietario del proceso no es el de los procesos o el superusuario.

En la práctica, los usos más frecuentes de kill suelen tener uno de estos dos propósitos:

-  Terminar con uno o más procesos, para lo que se envía SIGTERM, aunque a veces se emplea también SIGQUIT o SIGIO, si se desea obtener un fichero core.
-  Probar el código de gestión de errores de un nuevo programa mediante la simulación de señales; por ejemplo, SIGFPE.

Recibe nuestras novedades
Al presionar "Recibir" estás dándote de alta y aceptas las condiciones legales de mailxmail

Hay 1 opinión. Opina sobre este curso.


Cursos similares a Procesos en C. Sincronización (segunda parte)


Cursos Valoración Alumnos Vídeo
Redacción eficaz de documentos de empresa
¿Sus memorandos son incomprensibles para sus compañeros de trabajo? ¿Su director no entiende sus informes? No se preocupe: con este sencillo curso gratis obtendrá las cla... [22/04/02]
 4,35/5 51.031  
Introducción al Lenguaje C
El lenguaje C apareció en 1972, en el diseño del sistema operativo UNIX. Este lenguaje, que en la actualidad está bajo el estandar ANSI C, se ha utilizado para diseñar ho... [10/05/04]
 4,41/5 25.607  
PHP y MySQL. Aplicaciones Web: HTML II (tercera parte)
Programación de aplicaciones Web con PHP y MySQL. Ahora continuaremos con el estudio de las páginas Web HTML. Estudiaremos las listas en HTML. ... [02/12/08]
5/5 711  


Publicar en   del.icio.us    digg    meneame

¿Qué es mailxmail.com?|ISSN: 1699-4914|Recomiéndanos|Ayuda
Condiciones legales de mailxmail