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 oderEINTRIch 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.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage