Deutsch   English   Français   Italiano  
<u30ldl$eee7$1@paganini.bofh.team>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!2.eu.feeder.erje.net!feeder.erje.net!weretis.net!feeder8.news.weretis.net!paganini.bofh.team!not-for-mail
From: Francois LE COAT <lecoat@atari.org>
Newsgroups: fr.comp.sys.atari
Subject: =?UTF-8?Q?Re:_fork=28=29_sous_Multitos_question_=c3=a0_Fran=c3=a7oi?=
 =?UTF-8?Q?s?=
Date: Thu, 4 May 2023 18:10:29 +0200
Organization: To protect and to server
Message-ID: <u30ldl$eee7$1@paganini.bofh.team>
References: <M8e3pvNp4cbQ8PseiWxbN_ORsQs@jntp>
 <81f7a286-e4ae-495c-9527-d15d720575a1n@googlegroups.com>
 <PkoV1QHwjG6i89kf67QK2xCcllk@jntp> <u2tbbd$3un10$1@paganini.bofh.team>
 <ztqSp_hYdmEO8dUjnwI-UcARM20@jntp> <u2ugim$2lt4$1@paganini.bofh.team>
 <ahOiapR6kcRTks1i2Pc4ypcEM3o@jntp>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: quoted-printable
Injection-Date: Thu, 4 May 2023 16:10:30 -0000 (UTC)
Injection-Info: paganini.bofh.team; logging-data="473543"; posting-host="FA92OzQsKw/evhUqc0ALDw.user.paganini.bofh.team"; mail-complaints-to="usenet@bofh.team"; posting-account="9dIQLXBM7WM9KzA+yjdR4A";
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:91.0)
 Gecko/20100101 SeaMonkey/2.53.16
Cancel-Lock: sha256:NTOT+t2Bdxczc2LQOPAOuQl9r/QcQ65AxZa9LOIYjEA=
X-Notice: Filtered by postfilter v. 0.9.3
Bytes: 5645
Lines: 108

Salut,

OL =E9crit=A0:
>>> Voici le code modifi=E9:
>>>
>>> /* * Programme who|wc : compte le nombre d'utilisateurs */ #include=20
>>> <stdio.h>
>>> #include <unistd.h> #include <stdlib.h>
>>>
>>> void main(void); int p[2]; /* Identificateurs des canaux de=20
>>> communication */
>>> void main()
>>> {=A0=A0 int pid; /* Identificateur des processus */ =A0=A0 if(pipe(p)=
!=3D0)
>>> =A0=A0=A0 {=A0=A0=A0=A0=A0=A0=A0 perror("\nCreation d'un canal imposs=
ible\n");
>>> =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 exit(1);
>>> =A0=A0=A0 }
>>>
>>> =A0=A0=A0 pid=3Dfork();
>>> =A0=A0=A0 if(pid=3D=3D0)
>>> =A0=A0=A0 { /* Processus FILS : Il execute "who" */
>>> =A0=A0=A0=A0=A0=A0=A0 close(1); /* Fermeture de la sortie standard */=

>>> =A0=A0=A0=A0=A0=A0=A0 dup(p[1]); /* Duplique la sortie du fils en sor=
tie standard */
>>> =A0=A0=A0=A0=A0=A0=A0 close(p[0]); /* L'entree du fils ne sert plus a=
 rien */
>>> =A0=A0=A0=A0=A0=A0=A0 close(p[1]); /* La sortie non plus */
>>> =A0=A0=A0=A0=A0=A0=A0 execlp("who","who",NULL);
>>> =A0=A0=A0 }
>>> =A0=A0=A0 else =A0=A0 if(pid<0)
>>> =A0=A0=A0 {=A0=A0=A0=A0=A0=A0=A0 perror("\nFork impossible\n");
>>> =A0=A0=A0 }
>>> =A0=A0=A0 /* Processus P=E8re pas besoin de fork c'est stupide pour f=
aire=20
>>> juste who|wc si on n'a pas besoin d'attendre et de faire autre chose*=
/
>>>
>>> =A0=A0=A0 close(0); /* Fermeture de l'entree standard */
>>> =A0=A0=A0 dup(p[0]); /* Duplique l'entree du pere en entree standard =
*/
>>> =A0=A0=A0 close(p[0]); /* L'entree du pere ne sert plus a rien */
>>> =A0=A0=A0 close(p[1]); /* La sortie non plus */
>>> =A0=A0=A0 execlp("wc","wc",NULL);
>>> =A0=A0=A0 printf("semble que quelque chose s'est mal pass=E9!\n");
>>> =A0=A0=A0 exit(1);
>>> }
>>
>> Oui, je suis d'accord. C'est =E9quivalent. Mais =E7a n'est pas ce que
>> j'avais =E9crit. Mon programme a l'int=E9r=EAt de montrer l'usage de l=
a
>> fonction wait(). `wait` est aussi une commande Unix, que j'utilise
>> fr=E9quemment dans les scripts shell. L'int=E9r=EAt du programme n'=E9=
tait pas
>> d'=EAtre le plus concis possible, mais d'apprendre l'usage du fork().
>=20
> Le probl=E8me c'est que ce n'est pas ce que tu as dit, j'avais tr=E8s b=
ien=20
> insist=E9 sur l'attente et tu as dit que je n'avais en gros rien compri=
s,=20
> chez moi b=E9otien cela veut dire "inculte", le profane, l'ignorant (au=
=20
> regard de ta soit disant grande culture dans le domaine) et que tu as=20
> bien pr=E9cis=E9 tout seul comme un grand alors que je n'avais parl=E9 =
que=20
> d'attente pour =EAtre sur de n'avoir rien laiss=E9 que c'=E9tait pour j=
e te=20
> cite :
>> Il faut bien attendre (sans rien faire), sinon la fin duprocessus=20
>> p=E8re, met fin aux deux processus >fils et petit-fils.
> Ce qui est parfaitement faux et cela est vrai par contre lorsque l'on=20
> parle de thread!
>>
>> Donc je pr=E9f=E8re ma version. Il y a toujours beaucoup de styles
>> diff=E9rents pour =E9crire la m=EAme chose. Chacun son style. Sinon,
>> je n'emploie pas le terme "thread" car =E7a n'est pas la m=EAme chose.=

>> On parle bien d'un programme parall=E8le bas=E9 sur le multi-processin=
g.
> Le probl=E8me c'est que vu ce que tu as dit plus haut tu as confondu=20
> process et thread!
>=20
> Faut redescendre de ton nuage et r=E9fl=E9chir 2 fois avant de rabaisse=
r les=20
> gens =E0 longueur de posts avec ta soit disant sup=E9riorit=E9. Mainten=
ant=20
> chacun =E9crit son code comme il veut du moment que cela marche et sur =
mon=20
> premier post je n'ai rien eu =E0 redire notes le (j'ai pass=E9 sous sil=
ence=20
> les erreurs de frappes grossi=E8res car sans importance le pinaillage t=
r=E8s=20
> peu pour moi) cela ne t'a pas emp=EAch=E9 de partir comme en 40!

Oui enfin, je veux bien que tu critiques mon travail, avec un esprit un
peu pol=E9mique, mais il s'agit de ce que j'ai pr=E9sent=E9 =E0 mes =E9tu=
diants.
Alors que toi Olivier, tu es un hobbyiste. Le jour o=F9 tu pr=E9senteras
le fruit de ton travail qui te fait vivre, je le critiquerai de mani=E8re=

sans doute moins d=E9sinvolte que tu ne le fais. D'o=F9 mon =E9nervement =
=2E..

--=20
Fran=E7ois LE COAT
Auteur de Eur=EAka 2.12 (Grapheur 2D, Modeleur 3D)
http://eureka.atari.org/