[C] Sleep unter Linux?

Wie gesagt, ich habs auch schon mit 5 sekunden versucht .. also sleep(5) oder sleep(10) das ging alles nicht..

Wenns von interesse is, kann ich ja meinen Code mal hier reinposten, zumindestens das stückchen.
 
Also der Code is folgender:

Code:
    for( ; ; )
    {
	ref = fscanf(pfile, "%s", Zeile);
	if (strncmp(Zeile, tmpZeile, strlen(tmpZeile)) == 0) 
	{
	 	strcpy(IP,strchr(Zeile, '=')+1);
		break;
	}
    }	
	
     for( ; ; )
     {
	printf("Test %s", IP);
	sleep(10);
        printf("Test");
     }

Also ich glaube den ersten Teil des Codes hab ich von dir in einem anderen Thread gekriegt. Deswegen muß ich ihn dir glaub ich nicht mehr erklären. strcpy(IP,strch... usw. hab ich nur gemacht weil ich die IP Adresse die dabei rauskommen soll in einer eigenen Variable stehen haben muß, weil ich die nicht ausgeben will über printf() .. sondern an nen Display senden will mit ner funktion wo ich die variable IP dann übergebe...

Falls jemand anderen interessieren sollte worums im ersten teil des codes geht, da wurde mir von deep schon sehr geholfen ;o):

HTML:
http://www.tutorials.de/forum/c-c/235773-ansi-c-dateien-bestimmtes-stueck-zeile-auslesen.html

Im zweiten soll sollte das ganze dann so aussehen, dass er erst die IP Zeile ausgibt, dann 10 bzw. 5 sekunden wartet, danach was neues ausgibt usw. usw.

Wenn ich den Code ausführe, gibt er garnix aus und bleibt hängen bis ich str + c drücke. Wenn ich die for - schleife rausnehme und einfach nur die Zeile
Code:
 printf("Test %s", IP);
dahin mache wo jetzt die forschleife ist, funktionierts, deswegen denk ich das es irgendwie an der forschleife oder an der sleep() - funktion liegt...

So hoffe habs gut genug beschrieben :-D
 
Die Standardausgabe ist (zeilenweise) gepuffert - das heißt das nichts ausgegeben wird ehe der Puffer nicht voll ist bzw. ein Newline ausgegeben wird.

Gruß
 
Ich wollt dir nochmal danken ;o) funktioniert jetzt ..- zumindestens bei mir zu Hause am PC simuliert in der Konsole ;oD .. ich bin ma gespannt ob das auch auf meiner arbeit am display funktioniert was ich programmieren sollte...
 
Kein Problem. Übrigens kannst du die Ausgabe auch erzwingen indem du fflush benutzt (wenn du z.B. zwischen den Intervallen kein Newline ausgeben möchtest).
Code:
for( ; ; ) {
  printf("abc");
  fflush(stdout);
  sleep(5);
}

Gruß
 
Zuletzt bearbeitet:
Zurück