Zweiten Prozess erzeugen ?
-
Hallo!
Ich schreibe zur Zeit ein kleines Programm.
Dieses Programm, welches mit Hilfe von ncurses eine Benutzeroberfläche erzeugt, soll die aktuelle Zeit anzeigen. Die Uhr soll in die Benutzeroberfläche integriert werden. Was ist zu tun, um unabhängig von einer Benutzereingabe (z.B. Drücken einer Taste innerhalb einer while-Schleife) die Zeit zu aktualisieren? Muss ich mit 'fork()' einen neuen Prozess für die Uhr erzeugen?Danke!
Gruß
Michael
-
Du kannst mit nodelay() aus ncurses die Eingabe auf nicht-blockierend stellen.
-
Du kannst mit fork() einen neuen Prozess erstellen. Der Rückgabewert der Funktion zeigt dir dann an, in welchem Prozess du bist (dem Vater wird die PID des Kindes gegeben, dem Kind 0). Allerdings ist das in diesem Fall nicht so günstig, weil du wahrscheinlich auf gleiche Speicherbereiche zugreifen willst, also einen Thread. Das geht einfacher mit pthread_create aus der libpthread: http://www.fsmlabs.com/developers/docs/html/susv2/xsh/pthread_create.html
-
Hallo!
Danke für die Hilfe!
Die Sache mit den Threads scheint eine gute Lösung zu sein. Werde mich damit mal befassen!Gruß
Michael
-
Mehr zu ncurses, fork() und libpthread findest du auch hier: "C und Linux".
Martin