Manpages

NAME

syscall − indirect system call

SYNOPSIS

/usr/ucb/cc [ flag ... ] file ...
#include <sys/syscall.h>

int syscall(number, arg, ...);

DESCRIPTION

syscall() performs the function whose assembly language interface has the specified number, and arguments arg .... Symbolic constants for functions can be found in the header <sys/syscall.h>.

RETURN VALUES

On error syscall() returns −1 and sets the external variable errno (see intro(2)).

FILES

<sys/syscall.h>

SEE ALSO

intro(2), pipe(2)

NOTES

Use of these interfaces should be restricted to only applications written on BSD platforms. Use of these interfaces with any of the system libraries or in multi-thread applications is unsupported.

WARNINGS

There is no way to use syscall() to call functions such as pipe(2) which return values that do not fit into one hardware register.

Since many system calls are implemented as library wrappers around traps to the kernel, these calls may not behave as documented when called from syscall(), which bypasses these wrappers. For these reasons, using syscall() is not recommended.