comment trouver le fichier d’en-tête à inclure pour une fonction de bibliothèque dans linux

Étant donné une fonction, disons atoi, comment puis-je trouver le fichier d’en-tête que je devrais inclure si je veux utiliser cette fonction? Je suis toujours perplexe pour ce problème. Si je considère les fonctions comme “atoi” comme linux c api, je peux poser ma question d’une autre manière: Est-ce qu’un document pour linux c api?

Pages de man . Tapez man atoi (ou, en général, man ) à l’invite de commande. Il vous donnera des informations sur l’utilisation ainsi qu’une liste des en-têtes à inclure.

Les pages de manuel documentent également les programmes et les commandes (find, grep, cd, etc.). Parfois, vous pouvez rencontrer un cas où un programme porte le même nom qu’une fonction C (par exemple, écrire). Dans ce cas, vous devez indiquer à l’homme de rechercher dans la section appropriée du manuel, la section 2 pour les appels système et la section 3 pour les fonctions de bibliothèque. Vous faites cela en insérant le numéro de section entre “man” et le nom de la commande: man 2 write . Si vous ne savez pas si une fonction donnée est un appel système ou une fonction de bibliothèque, essayez les deux.

Vous pouvez en apprendre plus sur les pages de manuel en tapant man man .

Ou bien, vous pouvez rechercher dans le répertoire / usr / include de votre système les occurrences de la définition de fonction que vous recherchez. Ceci est particulièrement utile pour les systèmes Linux embarqués ou dépouillés qui manquent de pages de manuel.

 find /usr/include -name "*.h" -print | xargs grep "" 

Par exemple, si vous faites:

 find /usr/include -name "*.h" -print | xargs grep atoi 

Vous récupérerez quelque chose comme ceci:

 /usr/include/stdlib.h:extern int atoi (__const char *__nptr) 

Le résultat contient à la fois le nom du fichier d’en-tête et la définition de l’interface.

  • Veuillez noter que votre répertoire / usr / include peut être ailleurs.

Est-ce qu’un document pour linux c api?

Certainement. La documentation est disponible sous forme de pages de manuel . Tapez man dans un terminal et profitez-en. Le fichier d’en-tête à inclure est généralement affiché en haut.

Si vous utilisez ctags et l’éditeur vim et que vous avez configuré ctags pour scanner / usr / include puis ctrl-] pendant que vous êtes sur la fonction que vous voulez trouver, vous accédez au fichier d’en-tête!

Vous pouvez également utiliser les éléments suivants

 whereis  

Il donnera le nom de chemin pour la fonction. Ensuite, ouvrez le chemin en utilisant l’éditeur vim. Ensuite, en utilisant l’éditeur “vim”, vous pouvez voir le fichier d’en-tête.

Exemple

 > whereis atoi atoi: /usr/share/man/man3/atoi.3.gz > vim /usr/share/man/man3/atoi.3.gz ---------- ---------- .B #include