Je suis en train de couper un code assez gros avec un fork pour le
faire tourner sur des machines multipro (je ne peux pas le
multithreader). Pour faire communiquer les deux parties, j'aimerais
utiliser pipe(), mais une question me taraude : pour fermer le pipe,
je vais utiliser close(), mais dois-je utiliser close() dans le fils
seul (est-ce suffisant) ou dans le fils _et_ le père ? La page man
est muette et je n'ai les idées très claires...
Est-ce que j'ai tout faut en rajoutant : close(fp[1]);
Non tu as raison Mais dans ce cas, il n'était pas obligatoire du fait que le "exit(0)"
qui suit ferme tous les descripteurs de fichiers ouverts.
FAb
Christian CAMIER writes:
Thomas Labourdette wrote:
[...] [...]
Mais dans ce cas, il n'était pas obligatoire du fait que le "exit(0)" qui suit ferme tous les descripteurs de fichiers ouverts.
J'en reviens à ma parenthèse sur l'ordonnancement des tâches sur plusieurs processeurs, y a bien un cador ou deux qui vont infirmer ou confirmer mes soupçons non ?
FAb (Alone in the doupteux)
Christian CAMIER <chcamier@nospam-free.fr> writes:
Thomas Labourdette wrote:
[...]
[...]
Mais dans ce cas, il n'était pas obligatoire du fait que le "exit(0)" qui suit
ferme tous les descripteurs de fichiers ouverts.
J'en reviens à ma parenthèse sur l'ordonnancement des tâches sur plusieurs
processeurs, y a bien un cador ou deux qui vont infirmer ou confirmer mes
soupçons non ?
Mais dans ce cas, il n'était pas obligatoire du fait que le "exit(0)" qui suit ferme tous les descripteurs de fichiers ouverts.
J'en reviens à ma parenthèse sur l'ordonnancement des tâches sur plusieurs processeurs, y a bien un cador ou deux qui vont infirmer ou confirmer mes soupçons non ?
FAb (Alone in the doupteux)
Thomas Labourdette
Christian CAMIER a écrit le jeudi 16 Décembre 2004 00:27 :
Thomas Labourdette wrote:
[...]
Est-ce que j'ai tout faut en rajoutant : close(fp[1]); Non tu as raison
Mais dans ce cas, il n'était pas obligatoire du fait que le "exit(0)"
qui suit ferme tous les descripteurs de fichiers ouverts.
Ça n'empêche pas de prendre de bonnes habitudes :-). Il utilisera peut-être, un jour, les pipes dans un contexte où l'application ne s'arrête pas (connexion(s) -> fork -> traitement -> fin sous process, connexion(s) -> fork -> traitement -> fin sous process, ... etc)
@+ -- Fred DEPLACEMENT (signature aléatoire) " Il faut se dépêcher de boire avant d'être saoul. "
Christian CAMIER a écrit le jeudi 16 Décembre 2004 00:27 :
Thomas Labourdette wrote:
[...]
Est-ce que j'ai tout faut en rajoutant :
close(fp[1]);
Non tu as raison
Mais dans ce cas, il n'était pas obligatoire du fait que le "exit(0)"
qui suit ferme tous les descripteurs de fichiers ouverts.
Ça n'empêche pas de prendre de bonnes habitudes :-). Il utilisera peut-être,
un jour, les pipes dans un contexte où l'application ne s'arrête pas
(connexion(s) -> fork -> traitement -> fin sous process, connexion(s) ->
fork -> traitement -> fin sous process, ... etc)
@+
--
Fred DEPLACEMENT (signature aléatoire)
" Il faut se dépêcher de boire avant d'être saoul. "
Christian CAMIER a écrit le jeudi 16 Décembre 2004 00:27 :
Thomas Labourdette wrote:
[...]
Est-ce que j'ai tout faut en rajoutant : close(fp[1]); Non tu as raison
Mais dans ce cas, il n'était pas obligatoire du fait que le "exit(0)"
qui suit ferme tous les descripteurs de fichiers ouverts.
Ça n'empêche pas de prendre de bonnes habitudes :-). Il utilisera peut-être, un jour, les pipes dans un contexte où l'application ne s'arrête pas (connexion(s) -> fork -> traitement -> fin sous process, connexion(s) -> fork -> traitement -> fin sous process, ... etc)
@+ -- Fred DEPLACEMENT (signature aléatoire) " Il faut se dépêcher de boire avant d'être saoul. "
cedric
FAb wrote:
J'en reviens à ma parenthèse sur l'ordonnancement des tâches sur plusieurs processeurs, y a bien un cador ou deux qui vont infirmer ou confirmer mes soupçons non ?
En en appelant à un cador, tu décourages forcément plein de ceux qui auraient voulu répondre. Et c'est dommage, on est surement quelques un à attendre la réponse en silence.
Ceci dit pour donner un peut de résonnance à ta question.
:-)
FAb wrote:
J'en reviens à ma parenthèse sur l'ordonnancement des tâches sur plusieurs
processeurs, y a bien un cador ou deux qui vont infirmer ou confirmer mes
soupçons non ?
En en appelant à un cador, tu décourages forcément plein de ceux qui
auraient voulu répondre. Et c'est dommage, on est surement quelques un à
attendre la réponse en silence.
Ceci dit pour donner un peut de résonnance à ta question.
J'en reviens à ma parenthèse sur l'ordonnancement des tâches sur plusieurs processeurs, y a bien un cador ou deux qui vont infirmer ou confirmer mes soupçons non ?
En en appelant à un cador, tu décourages forcément plein de ceux qui auraient voulu répondre. Et c'est dommage, on est surement quelques un à attendre la réponse en silence.
Ceci dit pour donner un peut de résonnance à ta question.
:-)
JKB
Le 16-12-2004, à propos de Re: pipe et fork..., Thomas Labourdette écrivait dans fr.comp.os.unix :
Christian CAMIER a écrit le jeudi 16 Décembre 2004 00:27 :
Thomas Labourdette wrote:
[...]
Est-ce que j'ai tout faut en rajoutant : close(fp[1]); Non tu as raison
Mais dans ce cas, il n'était pas obligatoire du fait que le "exit(0)"
qui suit ferme tous les descripteurs de fichiers ouverts.
Ça n'empêche pas de prendre de bonnes habitudes :-).
Je crois que j'en ai déjà prises certaines. Pour ceux qui veulent voir l'étendue du désastre, http://www.systella.fr/~bertrand/rpl2 ;-)
JKB
Le 16-12-2004, à propos de
Re: pipe et fork...,
Thomas Labourdette écrivait dans fr.comp.os.unix :
Christian CAMIER a écrit le jeudi 16 Décembre 2004 00:27 :
Thomas Labourdette wrote:
[...]
Est-ce que j'ai tout faut en rajoutant :
close(fp[1]);
Non tu as raison
Mais dans ce cas, il n'était pas obligatoire du fait que le "exit(0)"
qui suit ferme tous les descripteurs de fichiers ouverts.
Ça n'empêche pas de prendre de bonnes habitudes :-).
Je crois que j'en ai déjà prises certaines. Pour ceux qui veulent
voir l'étendue du désastre, http://www.systella.fr/~bertrand/rpl2
;-)