Difference between revisions of "SYS CALL viste a lezione."
Jump to navigation
Jump to search
(Created page with "* FORK Crea un nuovo processo duplicando il processo chiamante. Il nuovo processo , chiamato figlio, é un duplicato esatto del processo chiamante , chiamato padre. esempio1...") |
|||
Line 14: | Line 14: | ||
printf("due %d %d \n",getpid(), getppid() ); | printf("due %d %d \n",getpid(), getppid() ); | ||
} | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | esempio2(una piccola osservazione sull'eredità del buffer): | ||
+ | <syntaxhighlight lang="C"> | ||
+ | #include <stdio.h> | ||
+ | #include <unistd.h> | ||
+ | |||
+ | void main (void){ | ||
+ | printf("cucù! : "); //notare la differenza se nella sringa metto \n | ||
+ | if(fork()) | ||
+ | printf("uno %d %d \n", getpid(), getppid() ); | ||
+ | else | ||
+ | printf("due %d %d \n",getpid(), getppid() ); | ||
+ | } | ||
+ | |||
</syntaxhighlight> | </syntaxhighlight> |
Revision as of 23:16, 8 November 2013
- FORK
Crea un nuovo processo duplicando il processo chiamante. Il nuovo processo , chiamato figlio, é un duplicato esatto del processo chiamante , chiamato padre.
esempio1:
#include <stdio.h>
#include <unistd.h>
void main (void){
if(fork()){
printf("uno %d %d \n", getpid(), getppid() ); // getpid() stampa il pid del processo corrente , getppid() stampa il pid del processo padre
sleep(2);} //se togliessimo lo sleep;il processo figlio stamperebbe come getppid() 1,perché essendo il padre terminato e lui rimasto orfano,il nuovo padre diventa init
else
printf("due %d %d \n",getpid(), getppid() );
}
esempio2(una piccola osservazione sull'eredità del buffer):
#include <stdio.h>
#include <unistd.h>
void main (void){
printf("cucù! : "); //notare la differenza se nella sringa metto \n
if(fork())
printf("uno %d %d \n", getpid(), getppid() );
else
printf("due %d %d \n",getpid(), getppid() );
}