man syscall
также будет интересен для тех, кто делает:
syscall(SYS_ble)
manpages 4.04 говорит:
#define _GNU_SOURCE /* See feature_test_macros(7) */
#include <unistd.h>
#include <sys/syscall.h> /* For SYS_xxx definitions */
long syscall(long number, ...);
Символические константы для номеров системных вызовов можно найти в заголовочном файле <sys/syscall.h>
.
так что в glibc вам нужно:
unistd.h
для функции syscall
sys/syscall.h
для макросов SYS_
POSIX 7 не упоминает syscall
, поэтому это просто расширение glibc .
Стоит также отметить, что в пакете Ubuntu 16.04 libc6-dev 2.23 есть оба:
/usr/include/syscall.h
/usr/include/sys/syscall.h
первый из которых содержит только:
#include <sys/syscall.h>
и так позволяет вам использовать в вашем коде просто:
#include <syscall.h>
Но я вообще не могу найти, где это задокументировано, поэтому я бы посоветовал вам просто придерживаться документированных #include <sys/syscall.h>
.