SETSID posix
CREACION DE SECIONES SETSID()
NOMBRE
setsid - crea una sesión y define el ID de grupo del proceso
SINOPSIS
#include
pid_t setsid(void);
DESCRIPCION
setsid() crea unanueva sesión si el proceso que realiza la llamada no es lider de grupo de procesos. El proceso que realiza la llamada es lider de la nueva sesión, lider de grupo de procesos del nuevo grupo de procesos,y no tiene terminal controladora. El ID del grupo de procesos y el ID de la sesion del proceso que realiza la llamada se ponen al PID del proceso que realiza la llamada. Dicho proceso será el únicoproceso en este nuevo grupo de procesos y en esta nueva sesión.
VALOR DEVUELTO
El ID de la sesión del proceso que realiza la llamada.
ERRORES
Si hubo error, se devuleve -1. El único errorque puede suceder es EPERM. Se devuelve cuando el ID del grupo de procesos de cualquier proceso es igual al PID del proceso que realiza la llamada. De este modo,en particular, setsid falla si elproceso que realiza la llamada ya es lider de grupo de procesos.
OBSERVACIONES
El lider de grupo de procesos es un proceso con el ID de grupo igual a su PID. Para asegurarse de que setsid tenga éxito,cree un proceso hijo con fork y termine, y deje que el hijo ejecute setsid().
Descripción de Funcionalidad
– Todo proceso es miembro de un grupo de procesos y todo grupo de procesos esmiembro de una sesión.
– Un grupo de procesos tiene un líder cuyo PID es idéntico a su PGID.
– Una sesión tiene un líder y un terminal de control.
– Las señales de teclado son enviadas a todos losprocesos de la sesión.
– setsid: crea una nueva sesión y un nuevo grupo cuyo líder es el proceso que la invoca.
– setpgid: cambia el proceso hijo cuyo identificador es pid al grupo pgid.
Ejemplo:#include
#include
#include
#include
#include
main()
{
/// Los identificadores de procesos.
pid_t pid, sid;
// Se crea un proceso hijo (concurrente).
pid = fork();
// Se verifica que...
Regístrate para leer el documento completo.