10 Stimmen

Laufende Prozesse in C überprüfen

Kann mir jemand sagen, wie ich überprüfen kann, ob ein Unix-Prozess mit einer bestimmten Prozess-ID innerhalb eines C-Programms läuft? Ich weiß, dass ich system() aufrufen und den Befehl ps verwenden kann, aber ich möchte system() nicht aufrufen.

0 Stimmen

0 Stimmen

Kein Duplikat. Bei dieser Frage geht es um die Prüfung auf eine spezifisch Prozess-ID, die andere Frage bezieht sich auf die Auflistung tous Prozesse. (Julianos ausgezeichnete Antwort würde auf die andere Frage nicht zutreffen.)

0 Stimmen

@EdwinBuck bitte erwägen Sie, Ihre korrekte, wenn auch nicht ganz portable Antwort zu löschen (auf Systemen, auf denen /proc verfügbar ist, würde es Zugang zu Informationen bieten, die bei der Disambiguierung helfen könnten, und auf anderen muss "ps" seine Informationen irgendwoher bekommen)

31voto

Juliano Punkte 35709

Verwendung von töten(2) :

if (kill(pid, 0) == 0) {
    /* process is running or a zombie */
} else if (errno == ESRCH) {
    /* no such process with the given pid is running */
} else {
    /* some other error... use perror("...") or strerror(errno) to report */
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X