1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| #include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
void afficher_un_caractere(FILE* pfic){
char c1;
c1=fgetc(pfic);
if(c1!=EOF){
printf("%c\n",c1);}
else{
printf("detection de fin de fichier\n");
}
}
int main(){
FILE *pfic=NULL;
pid_t pid;
pfic=fopen("du_texte","r"); //ce fichier est juste un fichier texte contenant "1234567"
printf(" pfic = %p\n",(void*)pfic);
printf(" *pfic = %i\n",*pfic);
pid=getpid();
printf("avant fork pid=%i\n",pid);
pid=fork();
if(pid>0){
printf("on est dans le PERE mon pid = %i\n",getpid());
printf(" pfic = %p\n",(void*)pfic);
printf(" *pfic = %i\n",(*pfic));
afficher_un_caractere(pfic);
printf(" pfic = %p\n",(void*)pfic);
printf(" *pfic = %i\n",*pfic);
sleep(3);
printf("on est dans le PERE mon pid = %i\n",getpid());
afficher_un_caractere(pfic);
printf(" pfic = %p\n",(void*)pfic);
printf(" *pfic = %i\n",*pfic);
}else{
sleep(1);
printf("on est dans le FILS mon pid = %i\n",getpid());
printf(" pfic = %p\n",(void*)pfic);
printf(" *pfic = %i\n",*pfic);
afficher_un_caractere(pfic);
printf(" pfic = %p\n",(void*)pfic);
printf(" *pfic = %i\n",*pfic);
afficher_un_caractere(pfic);
printf(" pfic = %p\n",(void*)pfic);
printf(" *pfic = %i\n",*pfic);
}
return 0;
} |
Partager