Je sais que read() est un appel bloquant sauf si je rends le socket non bloquant. Je m'attends donc à ce que l'appel read() qui demande 4K de données renvoie une valeur positive (pas d'octets lus) ou -1 en cas d'erreur (réinitialisation possible de la connexion par le client, etc.). Ma question est la suivante: Est-ce que read() peut renvoyer '0' à n'importe quelle occasion?La fonction read() sur une socket connectée peut-elle renvoyer zéro octet?
Je manipulation de la lecture() de cette façon:
if ((readval = read(acceptfd, buf, sizeof(buf) - 1)) < 0)
{
}
else
{
buf[readval] = 0;
//Do some thing with data
}
Ce bombes de code si read() renvoient zéro et je sais comment y remédier. Mais est-il possible que read() renvoie zéro?
Avez-vous envisagé de lire la page * man *? – EJP