1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
unsigned sizeMax = 65000;
unsigned int cpt=(unsigned) strlen(msgInChar)+1;//ici (mettre +1 pour envoyer également le caractère '\0'
unsigned int n;//nombre de caractère écrits
do
{
printf("1");
int flags = fcntl(pfdchildparent[1], F_GETFL, 0);//permet au write de ne pas bloquer
fcntl(pfdchildparent[1], F_SETFL, flags | O_NONBLOCK);
n=write(pfdchildparent[1], msgInChar, sizeMax);
if(n==-1)break;//erreur
printf("2");
cpt-=n;//si il n'y a pas d'erreur cpt devrait valoir 0 à la fin de a boucle
msgInChar+=n;//on décale la lecture de n dans le tableau
}
while(n==sizeMax); |