syscall.3ucb revision ed22c7109fc5dd9e1b7a5d0333bdc7ad2718e2ab
te
Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved.
Copyright (c) 1980 Regents of the University of California. All rights reserved. The Berkeley software License Agreement specifies the terms and conditions for redistribution.
SYSCALL 3UCB "Oct 30, 2007"
NAME
syscall - indirect system call
SYNOPSIS

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

int syscall(number, arg, ...)
int number;
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.