|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Dec 2006
Messaggi: 104
|
[C unix] scrittura su file
Buongiorno raga,
Codice:
void handler(int);
int main(int argc, char *argv[])
{
int fd,pid,pidl,pidc;
FILE *fp,*fs;
if(argc!=2)
{
printf("Errore! <eseguibile> <nomefile test>\n");
exit(-1);
}
printf("PADRE: %d\n",getpid());
fp=fopen(argv[1],"w");
fs=fopen(argv[1],"r");
if((pid=fork())<0)
perror("Fork");
if(pid==0)
{
signal(SIGUSR1,handler);
pidc=getpid();
printf("FIGLIO: %d\n",pidc);
//Scrivo il pid del figlio nel file
fprintf(fp,"%d",pidc);
while(1)
pause();
}
else
{
while(1)
{
signal(SIGUSR2,handler);
sleep(5);
//legge il pid dal file
fscanf(fs,"%d",&pidc);
printf("Letto dal file pid %d\n",pidc);
kill(pid,SIGUSR1);
//pause();
}
}
//close(fd);
fclose(fp);
fclose(fs);
exit(0);
}
void handler(int signo)
{
if(signo==SIGUSR1)
{
printf("SEGNALE FIGLIO%d ricevuto\n",signo);
kill(getppid(),SIGUSR2);
}
if(signo==SIGUSR2)
{
printf("SEGNALE PADRE RICEVUTO!\n");
exit(0);
}
return;
}
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:38.



















