go to start Zeilenweises Einlesen Mit Buffer
|home |print view |recent changes |changed November 26, 2008 |
exact
|You are 50.16.132.180 <- set your identity!

Das Problem ist, dass der Systemcall read() ja nicht weiss, wann ein Zeilentrenner folgt wenn man zeilenweise einlesen möchte.

Um dieses Problem zu lösen, kann man entweder sehr ineffizient Zeichen für Zeichen mit read einlesen und sich die Zeile so selbst zusammensuchen:

std::string readLineFromFiledescriptor(int fd) {
    std::string line;
    char buf;
    while ((read(fd,&buf,sizeof(buf)>0)&& buf != '\n') {
       line += buf;
    }
    return line;
}
Oder man muss einen Buffer verwenden, der das Ergebnis von read sammelt. Beim Verwalten eines solchen Buffers kann man leicht Fehler machen, deshalb ist besondere Vorsicht geboten.


|home |print view |recent changes |changed November 26, 2008 |
exact
|You are 50.16.132.180 <- set your identity!

Zeilenweises Einlesen Mit Buffer
go to start