syscalls

SYSCALLS(2)                Manuel du programmeur Linux               SYSCALLS(2)



NOM
       syscalls - Appels système de Linux

SYNOPSIS
       Appels système de Linux.

DESCRIPTION
       L'appel système est l'interface fondamentale entre une application et le
       noyau Linux.

   Appels système et fonctions de bibliothèque
       Les appels système ne sont en général pas appelé directement, mais à
       partir de fonctions de la glibc (ou d'une autre bibliothèque). Pour avoir
       des détails pour l'appel direct d'un appel système, consultez intro(2).
       Souvent, mais pas toujours, le nom de la fonction de la bibliothèque est
       le même que celui de l'appel système à invoquer. Par exemple, la fonction
       truncate() de la glibc invoque l'appel système « truncate » sous-jacent.

       Souvent, la fonction enveloppe de la glibc est très petite, ne faisant
       que très peu en plus de placer les paramètres dans les bons registres
       avant d'appeler l'appel système puis de positionner errno comme il faut
       une fois que l'appel système a rendu la main. (Ce sont les mêmes étapes
       qui sont effectuées par syscall(2), qui peut être utilisé pour les appels
       système pour lesquels il n'y a pas de fonction enveloppe de fournies.)
       Note : les appels système indiquent un échec en renvoyant un numéro
       d'erreur négatif à l'appelant ; quand ça arrive, la fonction enveloppe
       prend l'opposé du numéro d'erreur (pour le rendre positif), le copie dans
       errno et renvoie -1 pour l'appelant de la fonction enveloppe.

       Des fois, cependant, la fonction réalise certaines opérations avant
       d'invoquer l'appel système. Par exemple, de nos jour il y a deux appels
       système truncate(2) et truncate64(2) (pour les raisons données
       ci-dessous) et la fonction truncate() de la glibc vérifie quels appels
       système sont fournis par le noyau et détermine lequel doit être utilisé.

   Liste des appels système
       Voici une liste des appels système Linux. Dans cette liste, la colonne
       Noyau indique la version du noyau pour laquelle ils sont apparus, s'ils
       sont apparu après la version 2.2 de Linux. Remarquez les points suivants.

       *  Si aucune version de noyau n'est indiquée, l'appel système est apparu
          dans le noyau 1.0 ou auparavant.

       *  Quand un appel système est marqué « 1.2 », cela signifie que l'appel
          système est probablement apparu dans une version 1.1.x du noyau et est
          apparu la première fois dans un noyau stable dans la version 1.2. (Le
          développement du noyau 1.2 a débuté à partir d'une branche de la
          version 1.0.6 du noyau, au travers de la série « non stable » des
          noyaux 1.1.x.)

       *  Quand un appel système est marqué « 2.0 », cela signifie que l'appel
          système est probablement apparu dans une version 1.3.x du noyau et est
          apparu la première fois dans un noyau stable dans la version 2.0. (Le
          développement du noyau 2.0 a débuté à partir d'une branche de la
          version 1.2.x du noyau, vers la version 1.2.10, au travers de la série
          « non stable » des noyaux 1.3.x.)

       *  Quand un appel système est marqué « 2.2 », cela signifie que l'appel
          système est probablement apparu dans une version 2.1.x du noyau et est
          apparu la première fois dans un noyau stable dans la version 2.2.0.
          (Le développement du noyau 2.2 a débuté à partir d'une branche de la
          version 2.0.21 du noyau, au travers de la série « non stable » des
          noyaux 2.1.x.)

       *  Quand un appel système est marqué « 2.4 », cela signifie que l'appel
          système est probablement apparu dans une version 2.3.x du noyau et est
          apparu la première fois dans un noyau stable dans la version 2.4.0.
          (Le développement du noyau 2.4 a débuté à partir d'une branche de la
          version 2.2.8 du noyau, au travers de la série « non stable » des
          noyaux 2.3.x.)

       *  Quand un appel système est marqué « 2.6 », cela signifie que l'appel
          système est probablement apparu dans une version 2.5.x du noyau et est
          apparu la première fois dans un noyau stable dans la version 2.6.0.
          (Le développement du noyau 2.6 a débuté à partir d'une branche de la
          version 2.4.15 du noyau, au travers de la série « non stable » des
          noyaux 2.5.x.)

       *  A partir du noyau 2.6.0, le mode de développement a changé et de
          nouveaux appels système pourraient apparaître à chaque version 2.6.x.
          Dans ce cas, le numéro de version exact où l'appel système est apparu
          est indiqué. Cette convention continue de s'appliquer à la série des
          noyaux 3.x, qui ont succédé au noyau 2.6.39.

       *  Dans certains cas, un appel système a été ajouté à un noyau de la
          série stable après l'embranchement provenant de la série stable
          précédente, puis a été porté dans la série stable précédente du noyau.
          Par exemple certains appels système apparus dans 2.6.x ont été portés
          dans une version 2.4.x postérieure à la version 2.4.15. Dans ce cas,
          les deux versions des deux séries majeures du noyau dans lesquelles
          l'appel système est apparu sont mentionnées.

       La liste des appels système qui sont disponibles dans la version 3.15 (ou
       dans certains cas pour certaines versions plus anciennes du noyau) est la
       suivante :

       Appel système               Noyau          Notes
       ───────────────────────────────────────────────────────────────────────

       _llseek(2)                  1.2
       _newselect(2)               2.0
       _sysctl(2)                  2.0
       accept(2)                   2.0            Voir notes de socketcall(2)
       accept4(2)                  2.6.28
       access(2)                   1.0
       acct(2)                     1.0
       add_key(2)                  2.6.11
       adjtimex(2)                 1.0
       alarm(2)                    1.0
       alloc_hugepages(2)          2.5.36         Retiré dans 2.5.44
       bdflush(2)                  1.2            Obsolète (ne fait rien)
                                                  depuis 2.6
       bind(2)                     2.0            Voir notes de socketcall(2)
       brk(2)                      1.0
       cacheflush(2)               1.2            Pas sur x86
       capget(2)                   2.2
       capset(2)                   2.2
       chdir(2)                    1.0
       chmod(2)                    1.0
       chown(2)                    2.2            Consultez chown(2) pour de
                                                  plus amples renseignements
                                                  sur les versions
       chown32(2)                  2.4
       chroot(2)                   1.0
       clock_adjtime(2)            2.6.39
       clock_getres(2)             2.6
       clock_gettime(2)            2.6

       clock_nanosleep(2)          2.6
       clock_settime(2)            2.6
       clone(2)                    1.0
       close(2)                    1.0
       connect(2)                  2.0            Voir notes de socketcall(2)
       creat(2)                    1.0
       create_module(2)                           Retiré dans 2.6
       delete_module(2)            1.0
       dup(2)                      1.0
       dup2(2)                     1.0
       dup3(2)                     2.6.27
       epoll_create(2)             2.6
       epoll_create1(2)            2.6.27
       epoll_ctl(2)                2.6
       epoll_pwait(2)              2.6.19
       epoll_wait(2)               2.6
       eventfd(2)                  2.6.22
       eventfd2(2)                 2.6.27
       execve(2)                   1.0
       exit(2)                     1.0
       exit_group(2)               2.6
       faccessat(2)                2.6.16
       fadvise64(2)                2.6
       fadvise64_64(2)             2.6
       fallocate(2)                2.6.23
       fanotify_init(2)            2.6.37
       fanotify_mark(2)            2.6.37
       fchdir(2)                   1.0
       fchmod(2)                   1.0
       fchmodat(2)                 2.6.16
       fchown(2)                   1.0
       fchown32(2)                 2.4
       fchownat(2)                 2.6.16
       fcntl(2)                    1.0
       fcntl64(2)                  2.4
       fdatasync(2)                2.0
       fgetxattr(2)                2.6 ; 2.4.18
       finit_module(2)             3.8
       flistxattr(2)               2.6 ; 2.4.18
       flock(2)                    2.0
       fork(2)                     1.0
       free_hugepages(2)           2.5.36         Supprimé dans 2.5.44
       fremovexattr(2)             2.6 ; 2.4.18
       fsetxattr(2)                2.6 ; 2.4.18
       fstat(2)                    1.0
       fstat64(2)                  2.4
       fstatat64(2)                2.6.16
       fstatfs(2)                  1.0
       fstatfs64(2)                2.6
       fsync(2)                    1.0            1.0
       ftruncate(2)                1.0
       ftruncate64(2)              2.4
       futex(2)                    2.6
       futimesat(2)                2.6.16
       get_kernel_syms(2)                         Retiré dans 2.6
       get_mempolicy(2)            2.6.6
       get_robust_list(2)          2.6.17
       get_thread_area(2)          2.6
       getcpu(2)                   2.6.19
       getcwd(2)                   2.2
       getdents(2)                 2.0
       getdents64(2)               2.4
       getegid(2)                  1.0
       getegid32(2)                2.4
       geteuid(2)                  1.0

       geteuid32(2)                2.4
       getgid(2)                   1.0
       getgid32(2)                 2.4
       getgroups(2)                1.0
       getgroups32(2)              2.4
       getitimer(2)                1.0
       getpeername(2)              2.0            Voir notes de socketcall(2)
       getpagesize(2)              2.0            Pas sur x86
       getpgid(2)                  1.0
       getpgrp(2)                  1.0
       getpid(2)                   1.0
       getppid(2)                  1.0
       getpriority(2)              1.0
       getresgid(2)                2.2
       getresgid32(2)              2.4
       getresuid(2)                2.2
       getresuid32(2)              2.4
       getrlimit(2)                1.0
       getrusage(2)                1.0
       getsid(2)                   2.0
       getsockname(2)              2.0            Voir notes de socketcall(2)
       getsockopt(2)               2.0            Voir notes de socketcall(2)
       gettid(2)                   2.4.11
       gettimeofday(2)             1.0
       getuid(2)                   1.0
       getuid32(2)                 2.4
       getxattr(2)                 2.6 ; 2.4.18
       init_module(2)              1.0
       inotify_add_watch(2)        2.6.13
       inotify_init(2)             2.6.13
       inotify_init1(2)            2.6.27
       inotify_rm_watch(2)         2.6.13
       io_cancel(2)                2.6
       io_destroy(2)               2.6
       io_getevents(2)             2.6
       io_setup(2)                 2.6
       io_submit(2)                2.6
       ioctl(2)                    1.0
       ioperm(2)                   1.0
       iopl(2)                     1.0
       ioprio_get(2)               2.6.13
       ioprio_set(2)               2.6.13
       ipc(2)                      1.0
       kcmp(2)                     3.5
       kern_features(2)            3.7            Sparc64
       kexec_load(2)               2.6.13
       keyctl(2)                   2.6.11
       kill(2)                     1.0
       lchown(2)                   1.0            Consultez chown(2) pour de
                                                  plus amples renseignements
                                                  sur les versions
       lchown32(2)                 2.4
       lgetxattr(2)                2.6 ; 2.4.18
       link(2)                     1.0
       linkat(2)                   2.6.16
       listen(2)                   2.0            Voir notes de socketcall(2)
       listxattr(2)                2.6 ; 2.4.18
       llistxattr(2)               2.6; 2.4.18
       lookup_dcookie(2)           2.6
       lremovexattr(2)             2.6 ; 2.4.18
       lseek(2)                    1.0
       lsetxattr(2)                2.6 ; 2.4.18
       lstat(2)                    1.0
       lstat64(2)                  2.4
       madvise(2)                  2.4

       mbind(2)                    2.6.6
       migrate_pages(2)            2.6.16
       mincore(2)                  2.4
       mkdir(2)                    1.0
       mkdirat(2)                  2.6.16
       mknod(2)                    1.0
       mknodat(2)                  2.6.16
       mlock(2)                    2.0
       mlockall(2)                 2.0
       mmap(2)                     1.0
       mmap2(2)                    2.4
       modify_ldt(2)               1.0
       mount(2)                    1.0
       move_pages(2)               2.6.18
       mprotect(2)                 1.0
       mq_getsetattr(2)            2.6.6
       mq_notify(2)                2.6.6
       mq_open(2)                  2.6.6
       mq_timedreceive(2)          2.6.6
       mq_timedsend(2)             2.6.6
       mq_unlink(2)                2.6.6
       mremap(2)                   2.0
       msgctl(2)                   2.0            Voir notes de ipc(2)
       msgget(2)                   2.0            Voir notes de ipc(2)
       msgrcv(2)                   2.0            Voir notes de ipc(2)
       msgsnd(2)                   2.0            Voir notes de ipc(2)
       msync(2)                    2.0
       munlock(2)                  2.0
       munlockall(2)               2.0
       munmap(2)                   1.0
       name_to_handle_at(2)        2.6.39
       nanosleep(2)                2.0
       nfsservctl(2)               2.2            Retiré dans 3.1
       nice(2)                     1.0
       oldfstat(2)                 1.0
       oldlstat(2)                 1.0
       oldolduname(2)              1.0
       oldstat(2)                  1.0
       olduname(2)                 1.0
       open(2)                     1.0
       open_by_handle_at(2)        2.6.39
       openat(2)                   2.6.16
       pause(2)                    1.0
       pciconfig_iobase(2)         2.2.15; 2.4    Pas sur x86
       pciconfig_read(2)           2.0.26; 2.2    Pas sur x86
       pciconfig_write(2)          2.0.26; 2.2    Pas sur x86
       perf_event_open(2)          2.6.31         Anc. perf_counter_open()
                                                  en 2.6.31 ; renommé en
                                                  2.6.32
       personality(2)              1.2
       perfctr(2)                  2.2            Sparc ; retiré en 2.6.34
       perfmonctl(2)               2.4            ia64
       pipe(2)                     1.0
       pipe2(2)                    2.6.27
       pivot_root(2)               2.4
       poll(2)                     2.0.36; 2.2
       ppc_rtas(2)                                PowerPC uniquement
       ppoll(2)                    2.6.16
       prctl(2)                    2.2
       pread64(2)                                 « pread » ajouté en 2.2,
                                                  renommé « pread64 » en 2.6
       preadv(2)                   2.6.30
       prlimit(2)                  2.6.36
       prlimit64(2)                2.6.36
       process_vm_readv(2)         3.2

       process_vm_writev(2)        3.2
       pselect6(2)                 2.6.16
       ptrace(2)                   1.0
       pwrite64(2)                                « pwrite » ajouté en 2.2,
                                                  renommé « pwrite64 » en 2.6
       pwritev(2)                  2.6.30
       query_module(2)             2.2            Retiré dans 2.6
       quotactl(2)                 1.0
       read(2)                     1.0
       readahead(2)                2.4.13
       readdir(2)                  1.0
       readlink(2)                 1.0
       readlinkat(2)               2.6.16
       readv(2)                    2.0
       reboot(2)                   1.0
       recv(2)                     2.0            Voir notes de socketcall(2)
       recvfrom(2)                 2.0            Voir notes de socketcall(2)
       recvmsg(2)                  2.0            Voir notes de socketcall(2)
       recvmmsg(2)                 2.6.33
       remap_file_pages(2)         2.6            Obsolète depuis 3.16
       removexattr(2)              2.6; 2.4.18
       rename(2)                   1.0
       renameat(2)                 2.6.16
       renameat2(2)                3.15
       request_key(2)              2.6.11
       restart_syscall(2)          2.6
       rmdir(2)                    1.0
       rt_sigaction(2)             2.2
       rt_sigpending(2)            2.2
       rt_sigprocmask(2)           2.2
       rt_sigqueueinfo(2)          2.2
       rt_sigreturn(2)             2.2
       rt_sigsuspend(2)            2.2
       rt_sigtimedwait(2)          2.2
       rt_tgsigqueueinfo(2)        2.6.31
       s390_runtime_instr(2)       3.7            s390 uniquement
       sched_get_priority_max(2)   2.0
       sched_get_priority_min(2)   2.0
       sched_getaffinity(2)        2.6
       sched_getattr(2)            3.14
       sched_getparam(2)           2.0
       sched_getscheduler(2)       2.0
       sched_rr_get_interval(2)    2.0
       sched_setaffinity(2)        2.6
       sched_setattr(2)            3.14
       sched_setparam(2)           2.0
       sched_setscheduler(2)       2.0
       sched_yield(2)              2.0
       select(2)                   1.0
       semctl(2)                   2.0            Voir notes de ipc(2)
       semget(2)                   2.0            Voir notes de ipc(2)
       semop(2)                    2.0            Voir notes de ipc(2)
       semtimedop(2)               2.6 ; 2.4.22
       send(2)                     2.0            Voir notes de socketcall(2)
       sendfile(2)                 2.2
       sendfile64(2)               2.6 ; 2.4.19
       sendmmsg(2)                 3.0
       sendmsg(2)                  2.0            Voir notes de socketcall(2)
       sendto(2)                   2.0            Voir notes de socketcall(2)
       set_mempolicy(2)            2.6.6
       set_robust_list(2)          2.6.17
       set_thread_area(2)          2.6
       set_tid_address(2)          2.6
       setdomainname(2)            1.0
       setfsgid(2)                 1.2

       setfsgid32(2)               2.4
       setfsuid(2)                 1.2
       setfsuid32(2)               2.4
       setgid(2)                   1.0
       setgid32(2)                 2.4
       setgroups(2)                1.0
       setgroups32(2)              2.4
       sethostname(2)              1.0
       setitimer(2)                1.0
       setns(2)                    3.0
       setpgid(2)                  1.0
       setpriority(2)              1.0
       setregid(2)                 1.0
       setregid32(2)               2.4
       setresgid(2)                2.2
       setresgid32(2)              2.4
       setresuid(2)                2.2
       setresuid32(2)              2.4
       setreuid(2)                 1.0
       setreuid32(2)               2.4
       setrlimit(2)                1.0
       setsid(2)                   1.0
       setsockopt(2)               2.0            Voir notes de socketcall(2)
       settimeofday(2)             1.0
       setuid(2)                   1.0
       setuid32(2)                 2.4
       setup(2)                                   Retiré dans 2.2
       setxattr(2)                 2.6 ; 2.4.18
       sgetmask(2)                 1.0
       shmat(2)                    2.0            Voir notes de ipc(2)
       shmctl(2)                   2.0            Voir notes de ipc(2)
       shmdt(2)                    2.0            Voir notes de ipc(2)
       shmget(2)                   2.0            Voir notes de ipc(2)
       shutdown(2)                 2.0            Voir notes de socketcall(2)
       sigaction(2)                1.0
       sigaltstack(2)              2.2
       signal(2)                   1.0
       signalfd(2)                 2.6.22
       signalfd4(2)                2.6.27
       sigpending(2)               1.0
       sigprocmask(2)              1.0
       sigreturn(2)                1.0
       sigsuspend(2)               1.0
       socket(2)                   2.0            Voir notes de socketcall(2)
       socketcall(2)               1.0
       socketpair(2)               2.0            Voir notes de socketcall(2)
       splice(2)                   2.6.17
       spu_create(2)               2.6.16         PowerPC uniquement
       spu_run(2)                  2.6.16         PowerPC uniquement
       ssetmask(2)                 1.0
       stat(2)                     1.0
       stat64(2)                   2.4
       statfs(2)                   1.0
       statfs64(2)                 2.6
       stime(2)                    1.0
       subpage_prot(2)             2.6.25         PowerPC si
                                                  CONFIG_PPC_64K_PAGES
       swapoff(2)                  1.0
       swapon(2)                   1.0
       symlink(2)                  1.0
       symlinkat(2)                2.6.16
       sync(2)                     1.0
       sync_file_range(2)          2.6.17
       sync_file_range2(2)         2.6.22         Comme sync_file_range(2)
                                                  dépendant de l'architecture

       syncfs(2)                   2.6.39
       sysfs(2)                    1.2
       sysinfo(2)                  1.0
       syslog(2)                   1.0
       tee(2)                      2.6.17
       tgkill(2)                   2.6
       time(2)                     1.0
       timer_create(2)             2.6
       timer_delete(2)             2.6
       timer_getoverrun(2)         2.6
       timer_gettime(2)            2.6
       timer_settime(2)            2.6
       timerfd_create(2)           2.6.25
       timerfd_gettime(2)          2.6.25
       timerfd_settime(2)          2.6.25
       times(2)                    1.0
       tkill(2)                    2.6 ; 2.4.22
       truncate(2)                 1.0
       truncate64(2)               2.4
       ugetrlimit(2)               2.4
       umask(2)                    1.0
       umount(2)                   1.0
       umount2(2)                  2.2
       uname(2)                    1.0
       unlink(2)                   1.0
       unlinkat(2)                 2.6.16
       unshare(2)                  2.6.16
       uselib(2)                   1.0
       ustat(2)                    1.0
       utime(2)                    1.0
       utimensat(2)                2.6.22
       utimes(2)                   2.2
       utrap_install(2)            2.2            Sparc
       vfork(2)                    2.2
       vhangup(2)                  1.0
       vm86old(2)                  1.0            Précédemment « vm86 »,
                                                  renommé en 2.0.28/2.2
       vm86(2)                     2.0.28; 2.2
       vmsplice(2)                 2.6.17
       wait4(2)                    1.0
       waitid(2)                   2.6.10
       waitpid(2)                  1.0
       write(2)                    1.0
       writev(2)                   2.0

       Sur de nombreuses plates-formes, y compris les x86-32, les appels des
       sockets sont multiplexés (par des fonctions de la glibc) à travers
       socketcall(2) et de même les IPC System V à l’aide d’ipc(2).

       Même si des entrées ont été réservées dans la table des appels système,
       les appels système suivants ne sont pas implémentés : afs_syscall(2),
       break(2), ftime(2), getpmsg(2), gtty(2), idle(2), lock(2), madvise1(2),
       mpx(2), phys(2), prof(2), profil(2), putpmsg(2), security(2), stty(2),
       tuxcall(2), ulimit(2) et vserver(2) (voir aussi unimplemented(2)).
       Toutefois, ftime(3), profil(3) et ulimit(3) sont disponibles sous forme
       de fonctions de bibliothèque. L'entrée pour phys(2) est utilisée pour
       umount(2) depuis le 2.1.116, phys(2) ne sera jamais implémenté. Les
       appels getpmsg(2) et putpmsg(2) sont pour les noyaux modifiés qui
       supportent les FLUX et ne seront peut-être jamais dans le noyau standard.

       set_zone_reclaim(2) a existé brièvement : ajouté dans Linux 2.6.13, et
       retiré en 2.6.16. Cet appel système n'a jamais été disponible dans
       l'espace utilisateur.

NOTES
       En général, le code implémentant l'appel système ayant le numéro __NR_xxx
       dans le fichier /usr/include/asm/unistd.h se trouve dans la routine
       sys_xxx() du noyau Linux. (La table de distribution pour la version i386
       se trouve dans /usr/src/linux/arch/i386/kernel/entry.S.) Il y a néanmoins
       plusieurs exceptions, principalement lorsque d'anciens appels système ont
       été remplacés par des nouveaux. Ces cas n'ont pas été traités de manière
       homogène. Sur les plate-formes avec une émulation de système
       propriétaire, comme parisc, sparc, sparc64 et alpha, il existe de
       nombreux appels supplémentaires ; mips64 contient aussi un jeu complet
       d'appels système 32-bits.

       Avec le temps, des changements dans les interfaces de certains appels
       système ont été nécessaires. Une raison pour ces changements a été
       l'augmentation de la taille des structures ou des valeurs scalaires
       passées aux appels système. À cause de ces changements, il y a maintenant
       plusieurs implémentations de certains appels système (par exemple
       truncate(2) et truncate64(2)). Ces différentes versions ne sont pas
       compatibles au niveau binaire, mais les applications ne sont généralement
       pas impactées par ceci : la magie de la glibc fait en sorte que les
       binaires existants utilisent la version des appels système qui existaient
       au moment où le binaire a été créé. Ainsi la compatibilité de l'ABI est
       préservée. Voici des exemples d'appels système qui existent dans
       plusieurs versions :

       *  À ce jour, il y a trois versions de stat(2) : sys_stat() (entrée
          __NR_oldstat), sys_newstat() (entrée __NR_stat) et sys_stat64()
          (entrée __NR_stat64), la dernière étant celle utilisée actuellement.
          La même histoire s'applique à lstat(2) et fstat(2).

       *  De même, les définitions __NR_oldolduname, __NR_olduname et __NR_uname
          concernent les routines sys_olduname(), sys_uname() et sys_newuname().

       *  Dans Linux 2.0, une nouvelle version de vm86(2) est apparue,
          l'ancienne et la nouvelle routine du noyau étant appelées
          sys_vm86old() et sys_vm86().

       *  Dans Linux 2.4, une nouvelle version de getrlimit(2) est apparue,
          l'ancienne et la nouvelle routine du noyau étant appelées
          sys_old_getrlimit() (entrée __NR_getrlimit) et sys_getrlimit() (entrée
          __NR_ugetrlimit).

       *  Linux 2.4 a augmenté la taille des identifiants d'utilisateur et de
          groupe de 16 bits à 32 bits. Pour permettre ce changement, un jeu
          d'appels système ont été ajoutés (par exemple, chown32(2),
          getuid32(2), getgroups32(2), setresuid32(2)), surchargeant les
          précédents appels système du même nom sans le suffixe « 32 ».

       *  Linux 2.4 a ajouté la gestion des gros fichiers pour les applications
          sur architecture 32 bits (c'est-à-dire la gestion des fichiers dont la
          taille et les décalages dans le fichier ne peuvent pas être
          représentés sur des 32 bits). Pour gérer ce changement, des appels
          système, qui utilisent des déplacements dans des fichiers ou des
          tailles de fichiers, ont dû être remplacés. Ainsi, les appels système
          suivants ont été ajoutés : fcntl64(2), ftruncate64(2), getdents64(2),
          stat64(2), statfs64(2) et les appels système analogues qui
          fonctionnent avec des descripteurs de fichier ou des liens
          symboliques. Ces appels système remplacent les anciens appels système
          qui, sauf pour les appels « stats », ont le même nom sans le suffixe
          « 64 ».

          Sur les plates-formes récentes qui n'ont que des accès aux fichiers
          64-bits et des UID 32-bits (ex. alpha, ia64, s390x) il n'y a pas
          d'appel *64 ou *32. Quand les appels *64 et *32 existent, les autres
          versions sont obsolètes.

       *  Les appels rt_sig* ont été ajoutés dans le noyau 2.2 pour gérer
          l'ajout des signaux temps réel (consultez signal(7)). Ces appels
          système remplacent les appels précédents du même nom sans le préfixe
          « rt_ ».

       *  Les appels système select(2) et mmap(2) utilisent 5 paramètres ou
          plus, ce qui a posé des problèmes avec les méthodes classiques de
          passage de paramètres sur i386. Ainsi, alors que les autres
          architectures disposent de sys_select() et sys_mmap() correspondant à
          __NR_select et __NR_mmap, on trouve sur les i386 old_select() et
          old_mmap() à leur place. Ce sont des routines utilisant un pointeur
          sur un bloc de paramètres. De nos jours, passer 5 paramètres n'est
          plus un problème, et il existe donc un __NR__newselect correspondant
          directement à sys_select() ; il en est de même pour __NR_mmap2.

VOIR AUSSI
       intro(2), syscall(2), unimplemented(2), libc(7), vdso(7)

COLOPHON
       Cette page fait partie de la publication 3.70 du projet man-pages Linux.
       Une description du projet et des instructions pour signaler des anomalies
       peuvent être trouvées à l'adresse http://www.kernel.org/doc/man-pages/.

TRADUCTION
       Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a
       <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone
       au sein du projet perkamon <http://perkamon.alioth.debian.org/>.

       Christophe Blaess <http://www.blaess.fr/christophe/> (1996-2003), Alain
       Portal <http://manpagesfr.free.fr/> (2003-2006).  Julien Cristau et
       l'équipe francophone de traduction de Debian (2006-2009).

       Veuillez signaler toute erreur de traduction en écrivant à
       <perkamon-fr@traduc.org>.

       Vous pouvez toujours avoir accès à la version anglaise de ce document en
       utilisant la commande « LC_ALL=C man <section> <page_de_man> ».



Linux                            8 juillet 2014                      SYSCALLS(2)