ftell( stdout)
-
Servus,
ich mußte das doch einfach mal probieren:
printf( "\nStart %d", ftell( stdout)); ... Ausgabe ca 80 kB auf stdout ... printf( "\nEnde %d", ftell( stdout));
Es kommt heraus:
Start 1667
Ende 3411Das war Ausgabe mittendrin. Knapp in main() zeigt er mir korrekt 0
-
ftell gibt einen long int zurück, keinen int. Du musst dementsprechend %ld für die Ausgabe verwenden, nicht %d. Ich nehme an, dass die merkwürdigen Werte daher kommen; eigentlich müsste ftell(stdout) nämlich immer -1 zurückgeben, weil stdout keinen file position indicator hat (vgl. 7.19.3 im Standard).
-
Bei meinem Watcom sind das beides 32-Bit-Werte. In der Ausgabe
macht das keinen Unterschied.Mich hat gewundert, daß da überhaupt etwas herauskommt.
Mit der -1 hätte ich eher gerechnet. Ich find's halt lustig
-
Ja, beim Watcom kann so was schon mal passieren. Schreib dem Projekt am besten einen Bug-Report, so was sollte ja leicht zu beheben sein.
-
Es ist nicht so wichtig (stdout ist ja eigentlich auch eher eine Pipe).
Es scheint als sei der Wert einfach nicht initialisiert und mehr oder
weniger zufällig ...
-
*** erstmal erledigt.
Das bringt mich aber auf ein anderes Problem, ich mache mal einen neuen Fred dafür auf.