linux-l: linux und C

Oliver Bandel oliver at first.in-berlin.de
Sa Mär 13 19:14:28 CET 1999


Hi!

On Sat, 13 Mar 1999 tho at thomsen.isdn.cs.tu-berlin.de wrote:

> In message <Pine.SOL.3.91.990313001041.7581B-100000 at elf.cs.tu-berlin.de>, Chris
> tof Lutteroth writes:
> > Hi !
> > Ich habe da ein Programm geschrieben und will einen Teil davon in 
> > eine andere Datei auslagern und getrennt compilieren. 
> loeblich.
> 
> > Ich habe jetzt eine funcs.c Datei mit den ausgelagerten Funktionen und
> > eine funcs.h Datei mit den Prototypen der Funktionen, die von aussen 
> > benutzt werden koennen sollen. Die funcs.h habe ich in meine Hauptdatei 
[...]

>  Aehm, ich will Dir das jetzt nicht unterstellen, aber ich habe schon mal je-
> manden gesehen (Name soll jetzt nicht genannt werden), der sein Hello-World
> Programm mit dem KDE Filemanager startete (ca. 2-3 dutzend Mal ;-) und immer
> noch nichts sah. Stdout muss natuerlich eingesehen werden. Entweder umleiten
> oder von der shell aus starten.
> 
>  BTW: Stdout wird gepuffert und u.U. terminiert dein Programm bevor die Puffer
> weggeschrieben wurden.

Es kann auch sein, daß stdout ungepuffert ist; je nachdem, was man
da programmiert hat...

> Fuege ein fflush(NULL) an das Programmende ein, ggf, auch ein sleep(1).

fflush() sollte eigentlich bei den meisten Anwendungen nicht nötig sein.
Aber man kann's halt nutzen, wenn man will.

Das sleep(1) hat da allerdings nichts zu suchen. das sieht doch sehr
nach unsauberer Programmierung aus.

> Eigentlich sollte dies nicht noetig sein, denn exit() schliesst
>  alle Streams

Und es flusht auch alle _Ausgabe_streams.

> aber ich habe schon gegenteillige Erfahrung gemacht.

Dann ist dort wohl ein Fehler im System.


Tschüß,
   Oliver

P.S.: Wenn man ohnehin viel auf der Konsole rum macht und dort auch
      Fenstertechniken anwenden will, dann kann ich zu ncurses raten.
      Das nimmt einem eine Menge Arbeit ab.



Mehr Informationen über die Mailingliste linux-l