PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C - printf() und select()



GU4RDI4N
10-07-2007, 14:26
hi,
ich hab hier ein kleines Problem und finde darauf keine hilfe:



...
printf("abc \n def");
select(max_socket+1, &socket_set, NULL, NULL, NULL);
...


nach dem umbruch (\n) wird nichts mehr ausgegeben, also alles was ausgegeben wird ist abc und der umbruch.

wenn ich das select auskommentiere funktioniert es einwandfrei,
mit wird nach dem letzten ausgegebenen umbruch nichts mehr ausgegeben.
erst nachdem select fertig ist lässt sich wieder was ausgeben...

warum ist das so und wie bringe ich ihn dazu alles auzugeben?


System:
AMD Athlon 4800+ X2 64bit
Debian Lenny (2.6.18-4-i686)
gcc version 4.1.2 20061115 (prerelease)

oxe1976
10-07-2007, 14:50
Die Ausgabe ueber printf() ist gepuffert, d.h. die Zeichen landen erst in einem Puffer (Zwischenspeicher) und werden eventuell erst spaeter ausgegeben.

Versuch mal:


...
prinft(...);
fflush(stdout);
...


fflush erzwingt das leeren des Puffers.

Gruss

GU4RDI4N
10-07-2007, 15:48
funktioniert super, vielen dank!