/* liest zeilenweise aus dem Socketdeskriptor sd und schreibt die Zeil in das char-Array buf. buflen gibt die Laenge von buf an. Rueckgabewert ist die Anzahl der gelesen Zeichen */ int readline(int sd, char *buf, int buflen) { int n, rc; char c; for (n = 1; n < buflen; n++) { if ((rc = read(sd, &c, 1)) == 1) { *buf++ = c; if (c == '\n') break; } else if (rc == 0) { if (n == 1) return 0; else break; } else return -1; } *buf = 0; return n; }