/**************************************************************/ /* */ /* UNIX 1 / WS 92/93 Gruppe ux803 */ /* 3. Uebung - Aufgabe 2 - line.c */ /* */ /* Vorname Name Matrikelnr. */ /* --------- ------- ------------- */ /* Dietmar Dierks 125761 */ /* Roman Czyborra 127221 */ /* Torsten Buller 117894 */ /* Gerasimos Paliatsaras 140956 */ /* */ /**************************************************************/ #include char *readline(buf, buflen) char *buf; int buflen; { static int c,f; static char *p; p = buf; /* p zeige auf buf[0], dort ist einzutragen */ f = buflen; /* noch f Bytes frei im buf */ while (1) switch (c = getchar()) { case EOF : return NULL; case '\n': /* Zeilenende */ * p = '\0'; return buf; default: /* normales Zeichen */ * p++ = (char) c; /* eintragen */ if (! --f) /* noch 1 Byte frei ? */ { fputs ("line too long for buf\n", stderr); while ((c = getchar()) != EOF && c != '\n'); return NULL; } } }