FIFO-pipe ist immer lesbar, im select()

In C-pseudo-code:

while (1) {
    fifo = open("fifo", O_RDONLY | O_NONBLOCK);
    fd_set read;
    FD_SET(fifo, &read);
    select(nfds, &read, NULL, NULL, NULL);
}

Den Prozess schläft, als sich-ausgelöst durch die select() bis ein anderer Prozess schreibt in fifo. Danach wird es immer finden fifo als eine lesbare Datei-Deskriptor.

Wie dieses Verhalten zu vermeiden (das ist, nach fifo wurde einmal gelesen, wie man es als unlesbar wird, bis man es bekommt noch ein schreiben?)

  • Also, was willst du auftreten?
InformationsquelleAutor Matoe | 2013-01-30
Schreibe einen Kommentar