Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Am einfachsten ist es sicher das eigentliche Programm mittels einen Shellskriptes zu starten und darin die Prozessanzeige "ps" auszuwerten. Angenommen dein Programm heißt "testprogramm":
Code:
#!/bin/sh
if ps a|grep testprogramm;
then echo "testprogramm laeuft schon";
else echo "testprogramm laeuft nicht, wird gestartet.";
/home/thomas/testprogramm;
fi
Um das direkt aus dem C-Programm auszuwerden wirds sicherlich mit fork() und exec() etwas aufwändiger.
Die traditionelle Methode ist die Benutzung eines LOCKFILES.
Du legst zuerst den Namen des Lockfiles fest, zB /var/lock/progname.
Beim Aufruf deines Programmes schaust du zuerst, ob es das
Lockfile schon gibt.
Falls ja: Programm läuft schon, Ende.
Falls nein: Erzeuge das Lockfile, und weiter im Programm
Zum Schluss noch Lockfile löschen.
Die Methode von Thomas_v2.1 funktioniert natürlich auch, jedoch muss
dann sichergestellt sein, dass dein Programm nicht noch auf andere Art
aufgerufen wird.
Die traditionelle Methode ist die Benutzung eines LOCKFILES.
Du legst zuerst den Namen des Lockfiles fest, zB /var/lock/progname.
Beim Aufruf deines Programmes schaust du zuerst, ob es das
Lockfile schon gibt.
Falls ja: Programm läuft schon, Ende.
Falls nein: Erzeuge das Lockfile, und weiter im Programm
Zum Schluss noch Lockfile löschen.
...
[B]HANDLE CreateMutex( LPSECURITY_ATTRIBUTES[/B][I] lpMutexAttributes[/I][B],[/B] // pointer to security attributes [B]
BOOL[/B][I] bInitialOwner[/I][B], [/B]// flag for initial ownership [B]
LPCTSTR[/B][I] lpName[/I] // pointer to mutex-object name [B]);[/B]
Das Gegestück zu CreateMutex ist in Linux 'pthreads_mutex_init'.
Ich kann Dir leider keinen Code in Linux anbieten, aber mit Hilfe dieser Funktion
sollte das möglich sein.
Mit Google findet man mit 'pthread_mutex_init process' sehr viel über das Thema.