2015-05-22 22 views
5

Beim Lernen von C habe ich erkannt, dass Sie das Handbuch seiner Funktionen in der Linux-Shell sehen können (ich habe BASH verwendet). Zum Beispiel:Wie laufen C-Funktionen in der Shell?

man strlen 
man crypt 
man printf 

Ich dachte, dass ich vielleicht diese Funktionen in Shell-Skripten verwenden könnte.

Ist das wahr? Wie kann ich diese Funktionen im Shell-Skript verwenden?

+1

'man' hat mehr als nur shell command man pages; Die Tatsache, dass etwas eine Manpage hat, bedeutet nicht, dass eine Shell es verstehen wird. – user2357112

+0

Ich sehe ... Nun, ich denke, der einzige Weg, es zu benutzen, ist ein eigenes C-Programm zu kompilieren. Da ich mich in diesen Tagen auf 'man'-Seiten verlassen habe, gibt es mir die Idee, dass alles, was' man'-Seiten hat, auf der Shell ausführbar ist. Ich denke, das ist dann nicht der Fall. Vielen Dank für Ihre Antworten. –

Antwort

3

Sie können nicht. Manpages sind ein Relikt aus einer Zeit, als es keine IDEs gab, und kein Web, um Dinge zu suchen. Sie würden Ihren Code in einem Editor wie ed oder vim oder emacs schreiben, nach Funktionen mit man suchen, mit cc kompilieren. Die Tatsache, dass der Befehl man C-Funktionen nachschlägt, bedeutet nicht, dass Sie diese Funktionen direkt in einer Shell verwenden.

Allerdings haben einige dieser Funktionen auch eine Entsprechung in * NIX: man 3 printf ist eine C-Funktion, aber man 1 printf ist ein * NIX-one.

+0

Ja. Dies würde ausreichen. Danke für Ihr Wissen. –

+0

Und die Basis von 'ln' trainiert den' link() 'Systemaufruf, und die' ln -s' Form übt den 'symlink()' Systemaufruf aus, und die Grundform von 'mkdir' trainiert den' mkdir () 'Systemaufruf, und die Grundform von' rmdir' übt den 'rmdir()' Systemaufruf aus (obwohl im Falle von 'mkdir' und' rmdir' die Systemaufrufe viel neuer sind als die Befehle). Und so weiter. Viele der Befehle sind einfache Abdeckungen für Systemaufrufe, zumindest in ihrer grundlegenden Inkarnation. Und mit Bash können Sie beispielsweise die Länge eines Strings mit '$ {# var}' ermitteln. –

2

Die kurze Antwort ist, Sie können Funktionen aus der C-Bibliothek nicht direkt in der Shell verwenden.

Blick auf die verschiedenen Mann Seiten, die Sie mit den folgenden Befehlen erhalten:

man 1 printf 
man 3 printf 

Der erste aus dem Abschnitt kommt 1 (Benutzerbefehle) und der zweite kommt aus dem Abschnitt 3 (C-Bibliothek). Während sie einem ähnlichen Zweck dienen, sind sie nicht gleich. Sie können das in Abschnitt 1 beschriebene printf direkt in der Shell verwenden. Check out man 7 man, um eine Liste der verschiedenen Abschnitte zu sehen.

+0

Verstanden. Und die "Sektionen" auf "man 7 man" verweisen mich auf "man 7 man-pages". Ich werde das hier zur Erinnerung bringen. Danke für deine Zeit und Mühe. –