URL: https://linuxfr.org/forums/programmation-c--2/posts/write-quitte-mon-programme-et-retourne-le-code-141 Title: write() quitte mon programme et retourne le code 141 Authors: andeus Date: 2005年11月06日T22:16:10+01:00 Tags: Score: 0 Voila, je débute en C, et après le Hello World je m'amuse à écrire un petit serveur tout ce qu'il y a de plus basique qui écrit sur la socket tout ce qu'il reçoit sur l'entrée standard, avec un client qui écrit sur la sortie standard tout ce qu'il reçois du serveur. ça marche bien, mais j'ai fait le test de couper le client (Ctrl-C) , et c'est là que le comportement du serveur est plutôt spécial. Voila le bout de code qui pose problème: while (1) { £spaces£ £/spaces£[ ... attente de connexion avec accept() ...] £spaces£ £/spaces£while (1) { £spaces£ £/spaces£nRead = read(0, buf, sizeof buf); £spaces£ £/spaces£if (write(newsock, buf, nRead) < 1) { £spaces£ £/spaces£perror("write"); £spaces£ £/spaces£close(newsock); £spaces£ £/spaces£break; £spaces£ £/spaces£} £spaces£ £/spaces£} } Donc lorsque je coupe le client, le serveur se coupe au niveau du write() en retournant le code 141 (j'ai mis des printf avant et après le write, c'est bien au niveau du write que le programme exit). Je suppose que c'est un comportement normal, mais je n'ai rien trouvé là dessus sur google ou dans le man de la fonction write. Donc je vous pose la question: Comment faire pour détecter avant le write() que la connexion du client est coupée ?