2015-05-22 19 views
5

Durante l'apprendimento di C, ho riconosciuto che è possibile vedere il manuale delle sue funzioni all'interno della shell di Linux (sto usando BASH). Ad esempio:Come eseguire le funzioni C nella shell?

man strlen 
man crypt 
man printf 

Avevo pensato che forse avrei potuto usare quelle funzioni nello script di shell.

È vero? Come posso usare quelle funzioni nello script di shell?

+1

'man' ha più di semplici pagine man di comando della shell; il fatto che qualcosa abbia una pagina man non significa che una shell lo capirà. – user2357112

+0

Vedo .. beh, penso che l'unico modo per usarlo è compilare il tuo programma C. Poiché in questi giorni mi sono affidato alle pagine di 'man', mi viene l'idea che tutto ciò che ha pagine' man' è eseguibile su shell. Immagino che questo non sia il caso allora. Grazie per le vostre risposte. –

risposta

3

Non è possibile. Le manpage sono una reliquia di un tempo in cui non c'erano IDE e nessun Web in cui guardare le cose. Scrivere il codice in un editor come ed o vim o emacs, cercare le funzioni con man, compilare con cc. Il fatto che il comando man cerchi le funzioni C non significa che si possa usare direttamente quelle funzioni in una shell.

Tuttavia, alcune di queste funzioni hanno anche un equivalente in * NIX: man 3 printf è una funzione C, ma man 1 printf è * NIX.

+0

Sì. Questo sarebbe sufficiente. Grazie per la tua conoscenza. –

+0

E la base di 'ln' esercita la chiamata di sistema' link() ', e il modulo' ln -s' esercita la chiamata di sistema 'symlink()', e la forma base di 'mkdir' esercita il' mkdir () chiamata di sistema, e la forma di base di 'rmdir' esercita la chiamata di sistema' rmdir() '(sebbene nel caso di' mkdir' e 'rmdir', le chiamate di sistema sono molto più recenti dei comandi). E così via. Molti dei comandi sono semplici cover per le chiamate di sistema, almeno nella loro incarnazione di base. E con Bash, puoi ottenere la lunghezza di una stringa con '$ {# var}', per esempio. –

2

La risposta breve è che non è possibile utilizzare le funzioni dalla libreria C direttamente nella shell.

Guardate le diverse pagine man che si ottiene con i seguenti comandi:

man 1 printf 
man 3 printf 

Il primo viene dalla sezione 1 (comandi utente), e la seconda proviene dalla sezione 3 (C library). Mentre servono a uno scopo simile, non sono la stessa cosa. È possibile utilizzare printf descritto nella sezione 1 direttamente nella shell. Controlla man 7 man per visualizzare un elenco di sezioni diverse.

+0

Capito. E la parte 'sections' su' man 7 man' mi reindirizza a 'man 7 man-pages'. Lo metterò qui come promemoria. Grazie per il tuo tempo e sforzo. –

Problemi correlati