timer
-
Hallo, ich würde gerne einen timer machen, der neben dem Programm läuft und immer zu einer bestimmten zeit etwas ausführt.
Hoff ihr versteht was ich mein.
Wie mache ich das?
-
hmm kommt drauf an ... am einfachsten, wenn de plattform unabhängig sein willst, öffnest de einen neuen thread ... lässt da drin dann eine schleife laufen ... und wenn eine gewisse Zeit vergangen ist lässt de die eine Funktion ausführen ... usw ^^
-
Muss nich Plattformunabhängig sein, arbeite mit Suse Linux.
Was ist ein thread?
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Linux/Unix verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Vielleicht solltest du zuerst ein Buch über das Programmieren in einer Unix Umgebung durchlesen.
Aber hier mal ein Beispiel, wie man es machen könnte:
#include <iostream> extern "C" { #include <pthread.h> #include <unistd.h> } // Wait 10 seconds static const int WAITTIME = 10; extern "C" void * comain(void *) { // Detach this thread. pthread_join is no longer neccessary. pthread_detach(pthread_self()); // Wait the specified time sleep(WAITTIME); // Perform desired action std::cerr << "Waited " << WAITTIME << " seconds." << std::endl; // Quit the thread return NULL; } int main() { //Create co thread. pthread_t tid; pthread_create(&tid, NULL, comain, NULL); //Endless loop; while (true); }
-
Ich hab folgende Funktionen in einem C-Programm benutzt : timer_create und timer_settime.
Bei der kompilation liefert KDevelop mir aber die Meldung:
processus1.c:(.text+0x80): undefined reference totimer_create' processus1.c:(.text+0xde): undefined reference to
timer_settime'Die time.h hab ich included... (superdeutsch)
Wäre schön wenn ihr mir helfen könnt
-
@jtommi
Die Funktionen gibt es anscheinend nicht.
-
@ rüdiger
ein Freund hat Gentoo, da laufen die Funktionen...
Leider bin ich nich Linuxgeübt genug um mir Gentoo drauf zu tun.
-
jtommi schrieb:
Ich hab folgende Funktionen in einem C-Programm benutzt : timer_create und timer_settime.
Bei der kompilation liefert KDevelop mir aber die Meldung:
processus1.c:(.text+0x80): undefined reference totimer_create' processus1.c:(.text+0xde): undefined reference to
timer_settime'Die time.h hab ich included... (superdeutsch)
Wäre schön wenn ihr mir helfen könnt
gegen librt linken
also
-lrt bei ldfalgs oder ldadd dazutun, dann sollts gehn
-
Da komm ich nich ganz mit...
Muss ich das im makefile irgendwo dazu schreiben?
-
Hallo,
im einfachsten Fall:
gcc -lrt -O deinequellcodedatei.c -o derausführbbinaercode.bin
Gruss Alex
-
jtommi schrieb:
Da komm ich nich ganz mit...
Muss ich das im makefile irgendwo dazu schreiben?du verwendest kdevelop?
ein automake projekt, oder ein anderes (qmake, cmake, eigene makefiles)?
default is automake, also geh ich mal davon aus
variante 1:
im automakemanager rechtsklcik aufs target( programmname in bin) sollt dort stehn,
Einstellungen
Karteikarte Libraries
dort unten linke bibliotheken ausserhalb des projekts
hinzfuegen
-lrtoder, variante 2
Menu Projekt
Projekt Einstellungen
Einstellungen fuer configure
dort bei linkerschalter -lrt hinschreibenwenn du eins von beiden geamcht hast und dein projekt linkt, dann suchmaschiene deiner wahl benutzen um ein bisschen was zum thema linken ggen libraries nachlesne, ldflags ist eh ein gutes stichwort
-
ich habs, es klappt, danke