2014-06-08 6 views
1

En cours d'exécution du code en python, j'ai découvert une "erreur de tuyau cassé". Est-ce que quelqu'un peut m'expliquer s'il vous plaît ce que c'est simplement?Qu'est-ce qu'une erreur de tuyau cassé?

Merci.

+0

Cela signifie que votre programme a essayé d'écrire dans un tube (probablement connecté entre deux processus, mais vous pouvez avoir un tube dans un seul processus), mais il ne restait plus aucun processus capable de lire depuis le tube, donc vous avez l'erreur 'tuyau cassé'. –

Répondre

8

Un tuyau relie deux processus. L'un de ces processus contient la fin de lecture du tube et l'autre contient la fin de l'écriture.

Lors de l'écriture du canal, les données sont stockées dans un tampon en attendant que les autres processus le récupèrent. Que se passe-t-il si un processus écrit sur un tuyau, mais que le processus de l'autre côté sort ou ferme soudainement le tuyau? Ou inversement, un processus est en train de se lire au moment où l'auteur finit ou se ferme?

Cette erreur d'entrée/sortie est appelée un tube rompu.

+0

J'ai aussi cette erreur. Est-ce réparable? –

+0

L'erreur ne peut pas être _fixée_ parce que c'est juste un symptôme. Ça vous dit qu'il y a un autre problème. L'un des deux processus consiste à fermer le tuyau avant qu'il ne le devienne (peut-être en terminant), ou les attentes de l'autre processus sont erronées. Le tuyau cassé n'est pas l'erreur, c'est la discordance dans le cycle de vie du processus. Ils ne travaillent pas ensemble correclty – slezica

+0

donc, il n'y a pas de solution ... c'est un bummer. –

Questions connexes