¿Existe una forma más limpia de usar la función de escritura () de manera confiable?
yo leo elman
páginas, y mi entendimiento es que siwrite()
falla y establece elerrno
aEAGAIN
oEINTR
, Puedo realizar elwrite()
de nuevo, así que se me ocurrió el siguiente código:
<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>
Estoy realizandoread()
ywrite()
en los zócalos y el manejo de laread()
similar a la anterior. Estoy usando Linux, congcc
compilador.