Der Kill () -Systemaufruf in C -Sprache wird vom Betriebssystem verwendet, um ein Abbruchsignal an einen Prozess zu senden, wodurch es zum Beenden aufgefordert wird. Andererseits bedeutet ein Tötungssystemaufruf nicht immer, dass der Prozess beendet wird. Es könnte eine Vielzahl von Bedeutungen haben. Mit der Systemfunktion „Kill ()“ kann ein Prozess einen neuen Prozess signalisieren. Der TALD () -Systemanruf wird häufig verwendet, um Signale an Multithread -Programme oder traditionelle Prozesse zu übertragen. Basierend auf seinen numerischen Werten hat der Ganzzahl -PID -Parameter mehrere Auswirkungen. Wenn der PID -Wert mehr als Null ist, wird das SIG. Wenn der PID -Wert gleich Null ist, wird das SIG -Signal an alle Thread -Gruppen in derselben Prozessgruppe wie der Anruferprozess übertragen. Wenn PID mit -1 mit Ausnahme von Swapper (PID 0), Init (PID 1) und Strom ist, wird das Signal allen Prozessen gegeben.
In diesem Leitfaden erläutern wir die Implementierung des Kill () -Systemaufrufs in C -Sprache.
Voraussetzungen:
Notiz: Wir verwenden Ubuntu 20.04 Linux -System.
Beispiel für Kill () Systemaufruf in C
Beginnen wir mit einem kurzen und einfachen Beispiel, um unser Kill () -Systemanrufkonzept zu klären. Dafür müssen wir eine haben .c Datei in unserem System. Wie bereits gesagt wird, dass wir Ubuntu 20 verwenden.04 Linux -System, also erstellen wir a .c Datei mit der Shell. Starten Sie zunächst die Shell, indem Sie sie in der Anwendung des Ubuntu 20 durchsuchen.04 Linux -System oder Verwendung der Taste „Strg+Alt+T“. Sobald Sie Zugriff auf die Shell erhalten haben, führen Sie den folgenden Befehl in der Konsole aus.
$ nano Kill.C
Der Dateiname in unserem Fall lautet „Kill.C". Es liegt jedoch an Ihnen, Ihre Datei nach Ihrer Wahl zu benennen. Nach der Implementierung des obigen gelisteten Befehls wird der Gnu Nano-Editor auf Ihrem Bildschirm auftauchen. Sie müssen einen ähnlichen Code schreiben, wie im unterhalb des Amtedes angezeigten Screenshot angezeigt. Abhängig von Ihren Arbeitsanforderungen kann der Code jedoch problemlos geändert werden.
Die int argc (Argumentzahl) enthält die Menge an Befehlszeilenargumenten des Benutzers, wie z. B. den Namen des Programms. Wenn wir dem Programm einen Wert geben, wird der Wert von Argc zwei sein; eine für das Argument und eine für den Namen des Programms. Der Argc -Wert sollte nicht negativ sein. Argv (Argumentvektor) ist ein Zeichenzeiger -Array, das alle Argumente enthält. In der Printf -Funktion haben wir GETPID () verwendet.
Die Funktion getPid () wird verwendet, um die Prozess -ID des Prozesses zu erhalten, der es aufruft. Die PID für den ersten Prozess beträgt 1, und jeder Erfolgsprozess erhält eine andere ID. Es ist eine einfache Methode, um die PID zu erhalten. Diese Funktion hilft Ihnen ausschließlich bei der Erlangung einzigartiger Prozessidentifikatoren. Die Unistd.H -Bibliothek, eine Abkürzung der UNIX -Standardbibliothek, liefert die Funktion Sleep (). Wir wollen in diesem Szenario 5 Sekunden lang schlafen. Der Parameter beträgt 5, was eine Ganzzahl ist. Die Abkürzung Sigsegv steht für „Segmentierungsverletzung.”Wenn ein Programm versucht, außerhalb des daran zugewiesenen Speichers zu schreiben/zu lesen, oder beim Schreiben von Speicher, das nur gelesen werden kann, tritt Sigsegv auf. Die Abkürzung Sigsegv steht für „Segmentierungsverletzung“. Nach dem Schreiben des Code ist es Zeit für die Ausführung und Zusammenstellung.
Führen Sie den angegebenen Befehl unten in der Konsole des Ubuntu 20 aus.04 Linux -System.
$ GCC Kill.C
Es wird keine Ausgabe dieses Befehls geben. Um die Ausgabe des obigen geschriebenen Befehls zu erhalten, führen Sie den angegebenen Befehl unten in der Konsole des Ubuntu 20 aus.04 Linux -System.
$ ./A.aus
Sie können überprüfen, ob die Ausgabe auf der Shell angezeigt wurde.
Abschluss
Dieser Artikel hat Ihnen eine kurze Beschreibung des Kill () -Systemaufrufs in C zur Verfügung gestellt. Die Verwendung des TALD () -Systemanrufs in C wurde im Detail vorgelegt. Wir haben eines der Beispiele ausgeführt, um das Konzept zu klären. Ich hoffe.