elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Manejo de Señales en Linux(resuelto)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Manejo de Señales en Linux(resuelto)  (Leído 6,038 veces)
Tha_Traker

Desconectado Desconectado

Mensajes: 28



Ver Perfil
Manejo de Señales en Linux(resuelto)
« en: 17 Agosto 2010, 00:15 am »

Hola todo el mundo,
me he estado machacando buscando información sobre señales por google, pero lo que encuentro esta siempre a medias y no me explica como usar las señales y sus funcione.

Basicamente lo que me gustaria saber es que hacen y como se usan ciertas señales en c.
La funciones que tengo que usar son:
1-sigqueue (no me queda claro para que sirve la variable sig).
2-sigaction ( he leido que se pueden enviar datos con esta, aunque tampoco entiendo como)
3-sigwaitinfo(entiendo que es para esperar la señal pero la variables nose como se usan).
4-sigemptyset ( Para que sirven los sets?)
5-sigaddset
6-sigprocmask (Para que sirven la mascaras?)

También he visto que para usar ciertas variables de las funciones se han de declarar estructuras he inicializar no se que cosas.
Llevo toda la tarde leyendo paginas con ejemplos raros que no hacen nada y no encuentro nada que tenga una función util o que explique como se usa de verdad cada función. Espero que alguien tenga un momento para explicarme como funcionan, aunque sean algunas, o por lo menos recomendarme alguna página donde tengan información sobre como se usan.

Para lo que necesito estas funciones es para comunicar dos procesos, el main con un hijo creado con fork y ejecutando execlp para ejecutar al hijo. Solo necesito enviar una variable al otro proceso y matarlo cuando transcurra un tiempo.

Espero que alguién me pueda echar un cable, si hace falta mas información estare pendiente del post así que diganme y lo cuelgo cuanto antes.

Un saludo


« Última modificación: 17 Agosto 2010, 18:03 pm por Tha_Traker » En línea

GroK


Desconectado Desconectado

Mensajes: 681


...I have become comfortably numb...


Ver Perfil
Re: Manejo de Señales en Linux
« Respuesta #1 en: 17 Agosto 2010, 00:49 am »

Hola,

Quizas este documento te ayude:

http://www.4shared.com/document/03TDOS9e/apuntessig.html

Saludos


En línea

"I put on my Hendrix album and my son said 'Dad, who's that?' and i said 'Well son, that's God' "- Robert Plant

Tha_Traker

Desconectado Desconectado

Mensajes: 28



Ver Perfil
Re: Manejo de Señales en Linux
« Respuesta #2 en: 17 Agosto 2010, 01:07 am »

Tiene buena pinta y contiene todas las funciones. Mañana le echo un vistazo que me voy a sobar ahora. Lo único malo esque es otra vez un montón de tecnicismos, a ver si alguien me lo puede explicar en pocas palabras.
 Mil gracias Grok
En línea

Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: Manejo de Señales en Linux
« Respuesta #3 en: 17 Agosto 2010, 02:42 am »

Creo que lo principal para que comprendas que hace cada función es que leas la documentación correspondiente (hay demasiada) y algún libro sobre manejo de señales.
El problema sobre responder cada duda es que no te podemos explicar que hace cada parámetro de cada función porque seria demasiado largo, igualmente creo que preguntaste dos cosas que si vale la pena responder, porque a lo mejor no lo vas a encontrar en la documentación de determinada función.

Un set, en este caso el tipo de dato sigset_t, es una estructura que se utiliza con las funciones de manejo de señales, en este caso, para especificar cuales son las señales involucradas.
En cuanto a las mascaras, cada proceso contiene una mascara de señales, que especifica cuales están permitidas y cuales no, es decir, para bloquear u desbloquear grupos enteros de señales. En cada envió se chequea si la señal esta permitida en la mascara del proceso.

En cuanto a lo demás, bueno, te dejo estos links a ver si junto con lo que te paso GroK sacas algo en limpio, pero lo que te recomiendo es que trates de buscar algún libro ya que suelen explicar un poco mas desde el lado de la teoría, y creo que es eso lo que estas buscando.

SIGNAL
Signal (Computing)
Signal (2)

Saludos
En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
Tha_Traker

Desconectado Desconectado

Mensajes: 28



Ver Perfil
Re: Manejo de Señales en Linux
« Respuesta #4 en: 17 Agosto 2010, 12:58 pm »

Me estoy haciendo un lio de cojones. A ver:

Código:
    //Declaración de señales
        //Declaramos una estructua action y un handler info
        struct sigaction action;
        void info();
        //Inicializamos la nueva estructura a cero
        sigemptyset(&newmask);
        //Asignamos el bit correspondiente a KILL_CHILD
        sigaadset(&newmask,KILL_CHILD);
        //Asignamos SIG_KILL y la bloqueamos
        sigpromask(SIG_BLOCK,&newmask,&oldmask);
       
        action.sa_flags=0;
        action.sa_handler=info;
        //
            if (sigaction(KILL_CHILD, &action, NULL) == -1)
            {
                printf("Sistema operativo cerrando");
                exit(0);
            }
       

Todo esto es para que cuando llegue la señal KILL_CHILD el proceso muera no??
 
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
no puedo conseguir RET en un exploit de linux [RESUELTO]
Bugs y Exploits
Belial & Grimoire 1 2,940 Último mensaje 17 Mayo 2012, 03:45 am
por Belial & Grimoire
Siete señales de que estás convirtiendo en un potencial amante de Linux
Noticias
wolfbcn 0 1,491 Último mensaje 20 Marzo 2015, 19:36 pm
por wolfbcn
problema con manejo de nodos en linux
Programación C/C++
abaadoon 2 1,447 Último mensaje 12 Febrero 2016, 04:19 am
por abaadoon
Manejo de teclas especiales en Linux. C.
Programación C/C++
n-utz 1 1,641 Último mensaje 18 Abril 2017, 01:02 am
por do-while
Manejo de errores [Resuelto]
PHP
elezekiel 4 3,111 Último mensaje 20 Agosto 2017, 21:44 pm
por elezekiel
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines