Warum funktioniert printf() nicht alles drucken, bevor die sleep()?

Ich bin nur zu lernen, C mit Kernighan und Ritchie ' s Buch; ich bin in den Grundlagen des im vierten Kapitel (Funktionen und so). Den anderen Tag, wurde ich neugierig auf die sleep() Funktion, so versucht es so zu benutzen:

#include <stdio.h>
#include <unistd.h>

int main(void)
{
  printf(" I like cows.");
  sleep(5);
  return 0;
}

Das problem ist die Ausgabe des Programms, es sieht wie die sleep() zuerst und dann die printf(), in anderen Worten, es wartet fünf Sekunden und druckt den string. Also dachte ich, vielleicht ist das Programm bekommt sleep() so schnell, dass es nicht lassen printf() habe seine Arbeit getan, wie ich wollen, ist, dass print den string und dann schlafen.

Wie kann ich den string und setzen Sie dann das Programm, um zu schlafen?
Der compiler ist GCC 3.3.5 (propolice) in OpenBSD 4.3.

PS ich weiß nicht, wie du hier den Präprozessor Zeilen korrekt.

InformationsquelleAutor | 2008-12-03
Schreibe einen Kommentar