Re: fork() sous Multitos question à François

Liste des GroupesRevenir à fcs atari 
Sujet : Re: fork() sous Multitos question à François
De : lecoat (at) *nospam* gmail.com (Francois LE COAT)
Groupes : fr.comp.sys.atari
Date : 01. May 2023, 23:12:38
Autres entêtes
Message-ID : <81f7a286-e4ae-495c-9527-d15d720575a1n@googlegroups.com>
References : 1
User-Agent : G2/1.0
Salut,

OL écrit :
François tu es passionnant, tu vas pouvoir m'expliquer un truc a moi,
j'espère que tu ne vas pas louper une occasion!
 
 
Comme tu nous a dit que tu avais utilisé ton Falcon sous Multitos pour
faire des TD et montrer l'utilisation de fork(), je veux bien te croire
mais j'aimerais comprendre ce que tu voulais montrer, qu'est ce que ton
TD était sensé montrer? Qu'est ce qu'il faisait?
 
OL

Tiens, je t'envoie un exemple simple ...

/*
 * Programme who|wc : compte le nombre d'utilisateurs
 */

#include <stdio.h>
#include <unistd.h>

void main(void);

int p[2]; /* Identificateurs des canaux de communication */

void main()
{
int pid; /* Identificateur des processus */

  if(pipe(p)!=0)
  {
perror("\nCreation d'un canal impossible\n");
exit(1);
}

pid=fork();
  if(pid==0)
  { /* Processus PERE : Il execute "who" */
close(1); /* Fermeture de la sortie standard */
dup(p[1]) /* Duplique la sortie du pere en sortie standard */
close(p[0]); /* L'entree du pere ne sert plus a rien */
close(p[1]); /* La sortie non plus */
execlp("who","who",NULL);
}
else if(pid<0)
{
perror("\nFork impossible\n");
}
/* Processus Fils : il execute a nouveau un fork */
pid=fork();
  if(pid==0)
  { /* Processus PERE : Il execute "wc" */
close(0); /* Fermeture de l'entree standard */
dup(p[0]) /* Duplique l'entree du pere en entree standard */
close(p[0]); /* L'entree du pere ne sert plus a rien */
close(p[1]); /* La sortie non plus */
execlp("wc","wc",NULL);
}
else if(pid<0)
{
perror("\nFork impossible\n");
}
/* Processus Fils : Attend la fin des deux processus */
close(p[0]); /* L'entree du fils ne sert plus a rien */
close(p[1]); /* La sortie non plus */
while(wait()>=0);
  exit(0);
}

Date Sujet#  Auteur
1 May 23 * fork() sous Multitos question à François17OL
1 May 23 `* Re: fork() sous Multitos question à François16Francois LE COAT
2 May 23  `* Re: fork() sous Multitos question à François15OL
3 May 23   `* Re: fork() sous Multitos question à François14Francois LE COAT
3 May 23    +* Re: fork() sous Multitos question à François3pascal WIJSBROEK
3 May 23    i`* Re: fork() sous Multitos question à François2Francois LE COAT
3 May 23    i `- Re: fork() sous Multitos question à François1pascal WIJSBROEK
3 May 23    `* Re: fork() sous Multitos question à François10OL
3 May 23     `* Re: fork() sous Multitos question à François9Francois LE COAT
3 May 23      `* Re: fork() sous Multitos question à François8OL
4 May 23       `* Re: fork() sous Multitos question à François7Francois LE COAT
4 May 23        `* Re: fork() sous Multitos question à François6OL
5 May 23         `* Re: fork() sous Multitos question à François5Francois LE COAT
5 May 23          `* Re: fork() sous Multitos question à François4OL
6 May 23           `* Re: fork() sous Multitos question à François3Francois LE COAT
6 May 23            +- Re: fork() sous Multitos question à François1OL
7 May 23            `- Re: fork() sous Multitos question à François1pascal WIJSBROEK

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal