Reputation:
System call functions are offered by an OS directly. Some libraries (e.g. the GNU C library) offer functions that wrap the system calls of the OS, but are not offered by the OS directly.
In Linux, can I invoke system call functions in my C code, without a library (e.g. GNU C Library) that isn't offer by the OS directly? Does the OS offer a library for its system calls?
For example, if I want to directly invoke the system call function read()
in my C program, which header file should I include? Do I have to use some library?
Upvotes: 9
Views: 2181
Reputation: 98559
Yes, you can.
The headers you want are usually in /usr/include/linux
.
The lowest-level way to make a syscall is with the INT 0x80
assembler instruction directly, which is of course available to you without any libraries at all.
Upvotes: 6