what is the relationship between
/usr/include/sys/*.h
and
/usr/include/unistd.h ?
Fuctions in unistd.h are syscalls. Do the fuctions in sys/*.h call syscalls?
what is the relationship between
/usr/include/sys/*.h
and
/usr/include/unistd.h ?
Fuctions in unistd.h are syscalls. Do the fuctions in sys/*.h call syscalls?
The <unistd.h> header defines miscellaneous symbolic constants and types, and declares miscellaneous functions. See <unistd.h>. I don't think I have ever seen "syscalls" defined in this header nor would I expect to see them defined there.
/usr/include/sys tends to contain platform specific headers rather than general purpose headers.
Aren't write(), read() in unistd.h syscalls?
Why can't socket() in sys/socket.h be seen as a syscall, since it is provieded by OS?
They are also library calls.
unistd.h is very very old and kind of a grab-bag of stuff.
Why can't socket() in sys/socket.h be seen as a syscall, since it is provieded by OS?
It can be a system call but isn't always. On some systems it is, or at least used to be, a library.
thank you.