Mit C++ Prozesse killen
-
Morgen!
Eigentlich bin ich ja unter Windows zuhause, aber ich bräuchte eine Lösung wie ich mit C++ Code unter Linux Prozesse beenden kann und andere Dinge durchführen kann, z.B. sowas:
killall prozess123
sleep 2
cd ../TMPDIRS
rm -rf BLAWindows bietet dafür ja system() an, was gibt's da für Linux?
-
auch.
[quote=linux]
SYNOPSIS
#include <stdlib.h>int system(const char *command);
DESCRIPTION
system() executes a command specified in command by calling /bin/sh -c command, and returns after the
command has been completed. During execution of the command, SIGCHLD will be blocked, and SIGINT and
SIGQUIT will be ignored.
[/quote]
unter linux tippe "man system" ein, dann kriegste die hilfe. das läßt sich auch gut benutzen, um zu gucken, ob überhaupt was da ist. alles wichtige ist unter win und linux nämlich gleich.
-
Unter Unix/Linux helfen Dir bei solchen Fragen die kleinen aber feinen Programme apropos und man.
-
bleibt ein Problem
cd ../TMPDIRS
rm -rf BLAWie bekomme ich das in einen Systemaufruf? Ansonsten geht doch eine konsole auf (oder shell
), wechselt den pfad und schließt sich. Dann geht eine neue auf und führt "rm -rf BLA" aber dann nicht da auf wo sie es sollte.
Ich hoffe das war relativ klar...
-
Hi Caster,
um die Systemaufrufe ohne die lästige Shell zu machen, kannst du execve() benutzen. Die genaue Syntax wieder der manpage entnehmen. Damit kannst du Befehle direkt starten, ohne die Shell. Um das Verzeichnis zu wechseln, kannst du aber auch einfach ein chdir() machen. Dazu gibt es auch eine manpage. Damit wird, wie unter M$, der Ausführungspfad deines Programms geändert.
Musst mal schauen, was für die am besten ist.Gruß Mea
PS: Solltest du in Zukunft öfter mit Linux-Programmierung zu tum haben, kann ich dir wärmstens das Buch "Linux-Programmierung" von Richard Stones und Neil Matthew empfehlen (Link zu Amazon)