Old stuff/ecole_etude_fac_de_pau/licence_3/systeme-d-exploitation/tp2/2.c
(Deskargatu)
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <errno.h>
#include <stdlib.h>
int main()
{ char buf[3];
FILE* fichier;
fichier=fopen("text.txt","r+");
pid_t pid;
pid=fork();
if (pid == -1)
{
perror("fork error");
exit(-1);
}
else if (pid == 0)
{
if(fputs("ab",fichier)==-1)
{
perror("fputs1 error");
exit(-1);
}
printf(" le fils ecrit ab\n");
if (sleep (1)==-1)
{
perror("sleep1 error");
exit(-1);
}
if( fgets(buf,3,fichier)==NULL)
{
perror("fgets1 error");
exit(-1);
}
printf("le fils lit %c%c\n",buf[0],buf[1]);
}
else
{
if (sleep(3) == -1) { perror("sleep pere"); exit(-1); }
if( fgets(buf,3,fichier)==NULL)
{
perror("fgets2 error");
exit(-1);
}
printf("le pere lit %c%c\n",buf[0],buf[1]);
if(fputs("AB",fichier)==-1)
{
perror("fputs2 error");
exit(-1);
}
printf("le pere ecrit AB\n");
if(fclose(fichier)==-1)
{
perror("fclose2 error");
exit(-1);
}
}
}