PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : print-Ausgabe kommt zu spät



Discipulus
31-10-2003, 13:06
Hy @ all

Der Betreff klingt blöd, ist aber so ;)

Es geht darum, dass ich einen Text wie "testing ..." ausgeben will, dann etwas bearbeite, und wenn fertig bearbeitet wurde ein "done\n" ausgebe. Nur ist mein Problem, dass immer gerade "testing ... done\n" ausgegeben wird (ohne \n natürlich)!

Unter Windows funktionierts schön, doch unter Linux irgendwie nicht so.

Kennt jemand das Problem oder hat einen Tipp woran das liegen kann? Ich denke es liegt nicht am Script, sondern eher beim Interpreter.

THX

sagi
31-10-2003, 14:19
Ich denke es liegt nicht am Script, sondern eher beim Interpreter.

dann solltest du uns den vielleicht mitteilen ;)

mfg

c.

Badsteve
31-10-2003, 14:32
liegt wahrscheinlcih dadran, dass unter Unix alle Ein- und Ausgabefunktionen linebuffered arbeiten, wenn sie mit STDIN STDOUT arbeiten.


Steve

offe
01-11-2003, 10:08
Hallo,

also unter php gibt es den Befehl flush()

Der Ausgabe-Puffer wird geleert und alle Zeichen ausgegeben

Offe

peschmae
01-11-2003, 15:03
Original geschrieben von Badsteve
liegt wahrscheinlcih dadran, dass unter Unix alle Ein- und Ausgabefunktionen linebuffered arbeiten, wenn sie mit STDIN STDOUT arbeiten.


wenn dem so ist (entspricht auch meinen Erfahrungen mit Java ;) - die Portierung auf Windows wird dann zum Ghetto :rolleyes:), dann bleiben dir zwei möglichkeiten:

a) das Zeugs halt auf zwei Zeilen ausgeben
b) mit einer Escape-Sequenz zurückspringen (allerdings weiss ich nicht, ob dann die Escape-Sequenz auch unter Windows-Funktioniert -> wohl plattformabhängige Codeabschnitte :eek:)

MfG Peschmä

Badsteve
01-11-2003, 17:55
@ peschmae

dem ist so. :D

@ Discipulus

vielleicht sagst du mal welche Sprache du nutzt? Dann können wir dir auch ein bischen mehr helfen.

in Perl musst du z.B. $| auf 1 setzen.


Steve

Discipulus
03-11-2003, 07:50
Danke für die Antworten.

Sorry, habe vergessen zu sagen, dass es ein Perl-Script ist ;)

Ich versuche mal, den Ausgabe-Puffer zu leeren. Von so etwas habe ich schon gelesen.

@ Badsteve:
Was ist $| ?? Was macht diese Variable?

THX

Discipulus
03-11-2003, 10:36
Das Problem hat sich erledigt!!

Ich habe mich über die Variable $| informiert, und mit $|++ funktionierts ;)

Danke für eure Hilfe