Ich habe mich gefragt, ob die Verwendung von Systemaufrufen mit numerischen Werten von Bedeutung ist.
Nehmen Sie zum Beispiel wait(4) oder exit(3). Ich würde einen Link zu einer Dokumentation dieser oder eine Erklärung lieben.

-1
JIN007 4 Jän. 2016 im 21:48

2 Antworten

Beste Antwort

Wenn Sie den Namen eines Befehls, einer Funktion oder eines Systemaufrufs gefolgt von einer einstelligen Zahl in Klammern sehen, bezieht sich dieser normalerweise auf den Abschnitt, in dem sich die Manpage befindet.

Ich vermute, Sie sehen tatsächlich wait(2) und exit(3).

Beispiel: rm(1) bezieht sich auf die Manpage für den Befehl rm in Abschnitt 1 (Benutzerbefehle), und wait(2) bezieht sich auf die Manpage für wait Systemaufruf, Abschnitt 2 (Systemaufrufe).

Es bezieht sich nicht auf ein Argument, das übergeben werden soll.

Wenn Sie eine Manpage lesen, geben Sie Folgendes ein:

man 2 wait

Oder auf einigen Systemen:

man -s 2 wait

Um anzugeben, welchen Abschnitt Sie möchten. Dies ist normalerweise nicht erforderlich, kann jedoch wichtig sein, wenn derselbe Name in mehr als einem Abschnitt vorkommt - zum Beispiel printf(1) der Befehl und printf(3) die Funktion.

Geben Sie man man ein, um eine Liste der Abschnitte anzuzeigen:

  1. Ausführbare Programme oder Shell-Befehle
  2. Systemaufrufe (vom Kernel bereitgestellte Funktionen)
  3. Bibliotheksaufrufe (Funktionen innerhalb von Programmbibliotheken)

Etc.

Wenn Sie die Parameter für eine bestimmte Funktion kennen möchten, lesen Sie die Manpage für diese Funktion. (wait() verwendet beispielsweise ein int* Argument, keine Ganzzahl, und gibt ein pid_t Ergebnis zurück.)

5
Keith Thompson 4 Jän. 2016 im 20:49

Die beste Antwort finden Sie auf den Handbuchseiten. Und für exit () - es gibt einen einfachen Zweck - gibt es exit_code an. Der Vorteil ist also, dass exit (0) für das normale Ende des Skripts steht. Alle anderen Werte bedeuten unterschiedliche Fehler.

2
Sergius 4 Jän. 2016 im 20:35