Où puis-je voir le code source de l’API du système comme écrire / lire de Linux?

J’ai téléchargé le code source de sytem à partir d’ ici , mais je ne trouve pas le code source des fonctions de lecture / écriture du paquet. Quelqu’un pourrait-il me dire où je peux obtenir le code pour ces fonctions d’opération de socket?

[pourquoi je veux vérifier le code source]
Je développe une application linux multithread et j’ai besoin de savoir si l’appel des fonctions d’opération comme write / read / sendmsg pour accéder simultanément à un même socket TCP à partir de différents threads est sûr ou non.

vous pouvez rechercher une fonction et d’autres éléments dans le code source du kernel sur LXR .

Mais avant de faire une recherche, vous devez savoir que write / read / sendmsg est un appel système, et que leurs définitions ne sont généralement pas les mêmes. Lorsque vous utilisez read (), sys_read () fonctionne en fait, et sa définition est également confuse: ici

voici write () et sendmsg () .

Si vous voulez en savoir plus sur les appels système tels que leur définition, vous pouvez lire le chapitre 5 de Linux Kernel Development.

1) Découvrez quelle bibliothèque fournit la fonction que vous voulez voir source de

par exemple “homme lu”

NAME read - read from a file descriptor SYNOPSIS #include  ssize_t read(int fd, void *buf, size_t count); 

2) localiser le fichier d’en-tête, par exemple “/usr/include/unistd.h”

3) savoir quel paquet fournit ce fichier, avec Debian / Ubuntu par exemple

 pwadas@kehillah:~$ dpkg -S /usr/include/unistd.h libc6-dev: /usr/include/unistd.h 

4) Télécharger le paquet source et parcourir le code

il y a probablement beaucoup de fonctions “lues” disponibles dans diverses bibliothèques. Vous voudrez peut-être essayer

 man 7 socket man 7 tcp 

ou d’autres sources pertinentes.