Tfe

Ongi etorri tfe-ren webgunera...

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);
      }
    }
}