NevemTeve Creative Commons License 2007.03.02 0 0 155
Off:
Most éppen NamedPipe-okkal kísérletezem; minden leírás amit látok arról szól, hogy nyissa meg az egyik processz írásra, a másik olvasásra, és ha mindkettő megvan, mehet az adatforgalom (persze szimplex).
Namost történelmileg nekem nem egészen ez kellene <a BS2000-ben ismert 'Event Item'-ek funkcionalitását szeretném UNIX-ban helyettesíteni>, ezért kiváncsiságból RDWR-re nyitottam meg (akár több processzből egszerre), hogy meglássam, működik-e.
Nos, törpéletesen működik (AIX-ben és Linux-ban), az egyetlen apróság, hogy amikor a read-nek nincs mit olvasnia, azt nem egyformán jelzik, de az alábbi 'if' ezt megoldja:

fprintf (stderr, "read fifo: ");
fflush (stderr);

rdlen = read (h, buff, MSGSIZE);
if (rdlen == 0 ||
  (rdlen == EOF && errno == EAGAIN)) {
    fprintf (stderr, "<empty>n");
}