003
22.01.2008, 12:15 Uhr
0xdeadbeef
Gott (Operator)
|
Das mit dem printf ist keine Spinnerei. Schreib hinter die printf-Anweisung ein
...das flusth den Ausgabestream und die Ausgabe wird sofort sichtbar. Sinnvoller wäre es natürlich, einen Debugger zu benutzen (z.B. gdb in Verbindung mit ddd, oder valgrind in Verbindung mit kcachegrind).
Ansonsten funktionieren sockets unter Windows etwas anders als unter Linux, zum Beispiel muss die Socket-Bibliothek da erst initialisiert werden oder so, und es gibt auch sonst ein paar feine Unterschiede zur BSD-Socket-Bibliothek, auf der der ganze Kram fußt. Mit POSIX hat's Windows auch nicht so, deswegen wundert es mich eigentlich nicht, dass die fdopen-Funktion da rumspinnt und du read nicht kriegst - vielleicht nennen die das _read oder so.
Übrigens befindet read sich laut POSIX in <unistd.h>. Mag sein, dass sie der gcc in sys/types.h deklariert und die dann von unistd.h aus einbindet, aber korrekt, wenn man read benutzen will, ist trotzdem, <unistd.h> einzubinden. Die Windows allerdings ebenfalls nicht haben dürfte. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra |