|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Inactif
Inscription : mars 2006 Messages : 852 ![]() |
Hello, helloo,
Les pages man/2, sont les pages man pour les syscalls. Des recherches Google me renvoient des occurences sur le web pour gethostbyname(2), ce qui tend à faire penser que gethostbyname est une fonction du noyau sous Linux. Mais gethostbyname(3), qui est l'occurence la plus fréquente tend à faire penser le contraire. Le noyau intègre des fonctions réseau il me semble (des fonctions qui ne reposent donc pas sur des librairie dynamique). Il y a par exemple socketcall, qui est l'équivalent de syscall, mais pour les sockets (les sockets sont peut-être un sous-système dans le noyau). Même si les protocols sous jacents aux sockets peuvent êtres nombreux, en pratique, le protocol utilisé est INET dans 99% des cas. Ce ne serait donc pas surprenant que le support INET (comme gethostbyname par exemple), soit également intégré au noyau (à l'instar des sockets). Mais pourtant je ne trouve pas d'appel noyau pour par exemple gethostbyname. Qu'en est-il : est-ce gethosbyname et INET en général font partie du noyau ou pas ? Et si INET fait partie du noyau, alors quels sont les syscalls associés ? Merci pour tout, cela me rendrait un grand service d'avoir une idée de quelqu'un(e) qui connais la chose sous Linux... |
|
|
00
|
|
|
#2 | ||
![]() ![]() Inscription : juin 2006 Messages : 6 929 ![]() |
Le fait que j'ai trouvé le code source dans un fichier qui n'est pas du noyau me ferait penser que ce n'est pas un appel système :
http://www.jbox.dk/sanos/source/sys/os/netdb.c.html Code c :
En tout cas, sous Solaris, je sais que ça ne fait pas parti du noyau, il est nécessaire de faire une édition des liens supplémentaire, ce qui n'est pas le cas sous linux (sur ma machine du moins). Mais il me semble (je ne suis pas sûr) que ces fonctions sont définies dans la bibliothèque libnsl.a (c'est ce que me dis le man suivant), mais ça doit certainement dépendre des implémentations. Les sources de Solaris pour la fonction : http://cvs.opensolaris.org/source/xr...s/gethostent.c
__________________
Je ne répondrai à aucune question technique en privé |
||
|
|
00
|
|
|
#3 |
|
Inactif
Inscription : mars 2006 Messages : 852 ![]() |
Salut Millie,
Oui, je confirme maintenant : cela repose également sur le fichier /etc/resolv.conf, et est donc extérieure au noyau. Mais c'est vraiment fondamental, peut-être qu'il y aurait un moyen de faire un module qui intégre cette fonction au noyau... mais ça c'est une autre histoire... En plus de la librairie que tu indique, il existe également une autre norme, qui fait que cette fonction gethostbyname est fournie par une librairie nomée netdb . Encore merci pour la source |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com