Thread Wachsenden Dateien folgen: tail -f
(33 answers)
Opened by sid burn at 2006-10-06 00:49
Ich hätte auch gedacht, dass ein select() bei einem EOF wartet, aber dem ist nicht so. Ein Aufruf deines Skriptes mit truss zeigt:
in einer Endlosschleife laufen, also liefert select() immer sofort ein lesbaren Filehandle zurück. Und es scheint auch so gewollt zu sein, siehe beispielsweise den Thread hier: http://sources.redhat.com/ml/glibc-bugs/2004-05/msg00024.html Bei FreeBSD sieht ein echtes "tail -f" in truss so aus: Code: (dl
)
1 fstat(3,0xbfbfdde0) = 0 (0x0) Und das Programm wartet. Hier gibt es also einen speziellen "kernel event notification mechanism". Linux hat bestimmt etwas Ähnliches, oder verwendet eben auch nur den sleep 0.1-Workaround. Schau mal mit strace rein. |