#include <linux/net.h> /* Définition des constantes
SYS_* */
#include <sys/syscall.h> /* Définition de SYS_socketcall */
#include <unistd.h>
int syscall(SYS_socketcall, int call, unsigned long *args);
Note : la glibc ne fournit pas d'enveloppe autour de socketcall(), ce qui nécessite l'utilisation de syscall(2).
Les programmes utilisateurs doivent appeler les fonctions appropriées par leurs noms habituels. Seul les implémenteurs de bibliothèques standards et les hackers Linux ont besoin d'utiliser socketcall().
| call | Page de manuel |
| SYS_SOCKET |
socket(2)
|
| SYS_BIND |
bind(2)
|
| SYS_CONNECT |
connect(2)
|
| SYS_LISTEN |
listen(2)
|
| SYS_ACCEPT |
accept(2)
|
| SYS_GETSOCKNAME |
getsockname(2)
|
| SYS_GETPEERNAME |
getpeername(2)
|
| SYS_SOCKETPAIR |
socketpair(2)
|
| SYS_SEND |
send(2)
|
| SYS_RECV |
recv(2)
|
| SYS_SENDTO |
sendto(2)
|
| SYS_RECVFROM |
recvfrom(2)
|
| SYS_SHUTDOWN |
shutdown(2)
|
| SYS_SETSOCKOPT |
setsockopt(2)
|
| SYS_GETSOCKOPT |
getsockopt(2)
|
| SYS_SENDMSG |
sendmsg(2)
|
| SYS_RECVMSG |
recvmsg(2)
|
| SYS_ACCEPT4 |
accept4(2)
|
| SYS_RECVMMSG |
recvmmsg(2)
|
| SYS_SENDMMSG |
sendmmsg(2)
|
Sur x86-32, socketcall() était historiquement le seul point d'entrée de l'API des sockets. Cependant, à partir de Linux 4.3, les appels système directs sont fournis sur x86-32 pour l'API des sockets. Cela facilite la création de filtres seccomp(2) qui filtrent les appels système de sockets (pour les nouveaux binaires de l'espace utilisateur qui sont compilés pour utiliser le nouveau point d'entrée) et offre une (toute) petite amélioration de performance.
Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à