|
|
|
|
Strumenti |
24-05-2008, 13:46 | #1 |
Senior Member
Iscritto dal: Aug 2005
Messaggi: 439
|
[c#] unix segnali padre figlio
ciao raga
dovrei fare questo esercizio per capireu n po i segnali allora il processo figlio invia al padre un segnale lui lo cattura e mi stampa il suo pid non mi funziona mi date una mano? mi si blocca dopo aver stampato il pid del figlio con segnale definito untente 1 Codice:
#include<stdlib.h> #include<stddef.h> #include<stdio.h> #include<string.h> #include<unistd.h> #include<fcntl.h> #include<sys/types.h> #include<sys/stat.h> #include<dirent.h> #include <sys/wait.h> #include<wait.h> #include <signal.h> pid_t pid; void program(int sig) { if (sig==SIGUSR1) printf("PID==%d% ",getpid()); } int main() { if (pid=fork()==0) { printf("sono il figlio %d\n",getpid()); kill(getppid(),SIGUSR1); exit(1); } else signal(SIGUSR1,program); } Ultima modifica di *MATRIX* : 24-05-2008 alle 13:50. |
24-05-2008, 19:18 | #2 |
Senior Member
Iscritto dal: Aug 2005
Messaggi: 439
|
nessuna idea?
|
25-05-2008, 21:21 | #3 |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7026
|
C#?
|
25-05-2008, 21:47 | #4 |
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5964
|
In effetti... prima accertati del linguaggio che intendi usare.
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
26-05-2008, 12:42 | #5 |
Member
Iscritto dal: Oct 2005
Messaggi: 290
|
a parte la questione del linguaggio (non conosco il c# ma il codice che hai scritto tu è c), io ti consiglio di chiamare prima la signal poi la fork, nell'if della metti un paio di parentesi in più che aiutano la chiarezza! ah altra cosa in program non è necessario che controlli di nuovo il segnale.. serve solo gestisci più segnali con la stessa funzione ma nel tuo esempio questo non accade!
ah dubbio mio che non ho capito: tu devi stampare il pid del processo padre o del processo figlio?
__________________
_______________________________________________ AMD Athlon64 3500+, Cooler Master Hyper 6, Asus A8V Deluxe wifi-g Rev2.0, Corsair TwinX-1024 Pc3200XL Platinum, Western Digital Raptor 74GB, Cooler Master CoolDrive 4, Sapphire Radeon 9600XT 256MB, Sound Blaster Audigy Player, Cambridge Soundworks 4.0, Enermax Coolergiant EG485p/ax, Lg Flatron L1952S --- Acer Aspire 5024 Apple MacBook Pro 13" 2.53GHz |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:49.