Gibt es eine sauberere Möglichkeit, die write () - Funktion zuverlässig zu verwenden?
Ich lese dasman
Seiten, und mein Verständnis ist, dass wennwrite()
schlägt fehl und setzt daserrno
zuEAGAIN
oderEINTR
Ich darf das durchführenwrite()
wieder, also kam ich mit dem folgenden Code auf:
<code> ret = 0; while(ret != count) { write_count = write(connFD, (char *)buf + ret, count); while (write_count < 0) { switch(errno) { case EINTR: case EAGAIN: write_count = write(connFD, (char *)buf + ret, count -ret); break; default: printf("\n The value of ret is : %d\n", ret); printf("\n The error number is : %d\n", errno); ASSERT(0); } } ret += write_count; } </code>
Ich trete aufread()
undwrite()
auf Steckdosen und Handhabung derread()
ähnlich wie oben. Ich benutze Linux mitgcc
Compiler.