__NOTOC__ Системні виклики (Syscalls) ядра Linux

Як експортуються бібліотекою glibc, все на одній сторінці Система

sys/ioctl.h: ioctl

sys/random.h: getrandom

pci.h: pciconfig_read pciconfig_write

linux/sysctl.h: sysctl

linux/membarrier.h: membarrier

sys/klog.h: syslog

linux/bpf.h: bpf

grp.h: setgroups

sys/utsname.h: uname

sys/prctl.h: prctl

linux/getcpu.h: getcpu

sys/sysinfo.h: sysinfo

sys/personality.h: personality

sys/ptrace.h: ptrace

linux/kexec.h: kexec_file_load kexec_load

linux/reboot.h: reboot

Unexported: delete_module init_module finit_module perf_event_op rseq Час

sys/time.h: futimesat utimes gettimeofday settimeofday getitimer, setitimer

time.h: clock_settime clock_gettime clock_getres clock_nanosleep time stime nanosleep posix-timers.c: timer_create timer_gettime timer_getoverrun timer_settime timer_delete

sys/timerfd.h: timerfd_create timerfd_settime timerfd_gettime

sys/eventfd.h: eventfd2 eventfd

utime.h: utime

sys/times.h: times

bits/time.h: clock_adjtime

sys/timex.h: adjtimex

Безпека

sys/fsuid.h: setfsuid setfsgid

keyutils.h: add_key request_key keyctl

Unexported: seccomp Процеси

unistd.h: fork, vfork brk getpid uselib execve, execveat nice getgroups getgid, setgid getuid, setuid getresuid, setresuid getresgid, setresgid getsid, setsid setpgid, getpgid getppid getegid geteuid getpgrp setreuid setregid pause alarm acct

sched.h: clone sched_setscheduler sched_setparam sched_setattr sched_getscheduler sched_getparam sched_getattr sched_setaffinity sched_getaffinity sched_yield sched_get_priority_max sched_get_priority_min sched_rr_get_interval unshare setns

linux/unistd.h: set_tid_address exit_group

sys/resource.h: setpriority, getpriority getrlimit setrlimit getrusage gettid

linux/kcmp.h: kcmp

sys/capability.h: capget, capset

stdlib.h: exit Синхронізація

sys/sem.h: semget semctl semtimedop semop

mqueue.h: mq_open mq_unlink mq_timedsend mq_timedreceive mq_notify

sys/msg.h: msgget msgctl msgsnd msgrcv

sys/wait.h: waitid wait4 waitpid

sys/signalfd.h: signalfd4 signalfd

sys/epoll.h: epoll_create1 epoll_create epoll_ctl epoll_wait epoll_pwait

signal.h: rt_sigprocmask rt_sigpending rt_sigtimedwait kill sigaltstack sigpending sigprocmask rt_sigaction sigaction signal rt_sigsuspend sigsuspend

Unexported: futex set_robust_list get_robust_list

restart_syscall tgkill rt_sigqueueinfo rt_tgsigqueueinfo

mq_getsetattr 'Пам'ять

numaif.h: mbind set_mempolicy migrate_pages get_mempolicy

numaif.h: move_pages

sys/mman.h: msync mincore munmap remap_file_pages mremap mlock, mlock2 munlockmlockall munlockall mprotect pkey_mprotect pkey_alloc pkey_free madvise

sys/shm.h:

shmget, shmctl shmat, shmdt

sys/swap.h: swapoff, swapon

sys/memfd.h: memfd_create Метадані

sys/stat.h: stat

sys/statfs.h: statfs fstatfs

sys/inotify.h: inotify_init1 inotify_init inotify_add_watch inotify_rm_watch

sys/fanotify.h: fanotify_init fanotify_mark

sys/xattr.h: setxattr lsetxattr fsetxattr getxattr lgetxattr fgetxattr listxattr llistxattr flistxattr removexattr lremovexattr fremovexattr

sys/quota.h: quotactl

stdio.h: renameat rename

Unexported: statx io_getevents io_pgetevents fsopen fspick lookup_dcookie renameat2 fsinfo open_tree fsmount move_mount pivot_root getdents vmsplice name_to_handle_at open_by_handle_at pselect6 userfaultfd mmap_pgoff ioprio_set ioprio_get Дані

fcntl.h: open, openat fcntl sync_file_range fallocate creat splice tee readahead

unistd.h: truncate, ftruncate faccessat, access fchdir, chdir chroot fchownat, chown lchown, fchown close vhangup pipe, pipe2 sync, syncfs fsync, fdatasync dup, dup2, dup3 lseek read, write copy_file_range

sys/uio.h: readv, writev preadv, pwritev preadv2, pwritev2 process_vm_readv process_vm_writev

sys/file.h: flock

sys/mount.h: mount, umount

Неблокуючий Ввід/Вивід

sys/select.h: select

poll.h: poll, ppoll

linux/aio_abi.h: io_setup io_destroy io_submit io_cancel Мережа

sys/socket.h: socket, socketpair bind listen accept, accept4 connect getsockname getpeername send, recv sendto, recvfrom setsockopt, getsockopt shutdown sendmsg, sendmmsg recvmsg, recvmmsg

linux/net.h: socketcall

sys/sendfile.h: sendfile unistd.h: sethostname gethostname setdomainname

Застарілі: ipc, sgetmask, ssetmask, sysfs

IOCTL

ioctl - керування пристроєм

Синтаксис #include <sys/ioctl.h>

int ioctl(int fd, unsigned long request, ...);

Описання Системний виклик ioctl() мініпулює параметрами зазначеного пристрою із спеціальним файлом. Зокрема, керування багатьма характеристиками спеціальних символьних файлів (наприклад, термінатори) може відбуватися за допомогою запитів ioctl().

Аргумент fd має бути відкритим дескриптором файлу.

Другий аргумент визначає код запиту, який залежить від пристрою. Третій аргумент є нетипізованим вказівником на пам'ять. Традиційно це параметр char *argp (з того часу як з'явився void * в мові C).

GETRANDOM

getrandom - отримує послідовність випадкових байт

Синтаксис #include <sys/random.h>

ssize_t getrandom(void *buf, size_t buflen, unsigned int flags);

Описання

Системний виклик getrandom() заповнює буфер, на який вказує параметр buf випадковими байтами, кількість яких дорівнює buflen. Ці числа можуть використовуватися для генераторами випадкових чисел в просторі користувача, або для задач шифрування.

Посилання:

Directory of system calls man section 2 man syscalls