SYSCALL(2) Linux Programmer's Manual SYSCALL(2)NAME
syscall - indirect system call
#define _GNU_SOURCE /* See feature_test_macros(7) */
#include <sys/syscall.h> /* For SYS_xxx definitions */
int syscall(int number, ...);
syscall() is a small library function that invokes the system call whose assembly language interface has the specified number with the
specified arguments. Employing syscall() is useful, for example, when invoking a system call that has no wrapper function in the C
syscall() saves CPU registers before making the system call, restores the registers upon return from the system call, and stores any error
code returned by the system call in errno(3) if an error occurs.
Symbolic constants for system call numbers can be found in the header file <sys/syscall.h>.
The return value is defined by the system call being invoked. In general, a 0 return value indicates success. A -1 return value indicates
an error, and an error code is stored in errno.
syscall() first appeared in 4BSD.
main(int argc, char *argv)
tid = syscall(SYS_gettid);
tid = syscall(SYS_tgkill, getpid(), tid);
SEE ALSO _syscall(2), intro(2), syscalls(2)COLOPHON
This page is part of release 3.44 of the Linux man-pages project. A description of the project, and information about reporting bugs, can
be found at http://www.kernel.org/doc/man-pages/.
Linux 2012-08-14 SYSCALL(2)
Check Out this Related Man Page
syscall(3UCB) SunOS/BSD Compatibility Library Functions syscall(3UCB)NAME
syscall - indirect system call
/usr/ucb/cc [ flag ... ] file ...
int syscall(number, arg, ...);
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>.
On error syscall() returns -1 and sets the external variable errno (see intro(2)).
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.
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.
SunOS 5.10 22 Jan 1993 syscall(3UCB)
please look at:
IBM - IZ54713: SYSCALL BUFFER OVERFLOW VULNERABILITY
how does this vague messages mean and what can I expect?
Closed as program error. ?
Status CLOSED PER ?
PE NoPE ?
HIPER NoHIPER ?
regards,Raba (2 Replies)
I am using ptrace to keep track of clone syscalls in a program. However, I found that the traced syscall cant be paired. for example, there are some syscalls that have entry, but without exit showing up in the traced sequences. So, is there anyway to distinguish the entry and exit of a... (0 Replies)
If a Solaris process is calling some syscall, and right now execution is inside syscall doing only CPU work, for example the inside simplest times syscall,
<< we are here now, we have entered in the times, but not exited yet
<- app_func... (9 Replies)
I wanna add my own system call to Fedora 18 kernel 3.8.2.
From kernel 3.3 I heard there is a new system to add system calls.
So where i can find a guides ?
I wanna print this text: "Hello world!" in terminal, not dmesg. (4 Replies)
Hello to all
I want download a file in osx intel 64 with NASM , I want to use socket syscall
This is part of my code
command db "GET /test/2.gif HTTP/1.1\r\nHost: 10.1.1.187\r\n\r\n", 0
; url db "http://172.16.207.153/test/2.gif", 0
global main... (1 Reply)