__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