【发布时间】:2016-05-16 19:06:52
【问题描述】:
系统调用函数由操作系统直接提供。 一些库(例如 GNU C 库)提供了封装操作系统系统调用的函数,但操作系统不直接提供。
在 Linux 中,我可以在我的 C 代码中调用系统调用函数,而无需操作系统直接提供的库(例如 GNU C 库)吗?操作系统是否为其系统调用提供库?
例如,如果我想在我的C程序中直接调用系统调用函数read(),我应该包含哪个头文件?我必须使用一些库吗?
【问题讨论】:
-
unistd.h 提供对读取功能的访问。
-
fwiw 你可以在 asm 中调用系统调用而不需要库:asm.sourceforge.net/intro/hello.html 系统调用表:docs.cs.up.ac.za/programming/asm/derick_tut/syscalls.html
-
带汇编程序
int指令。 -
CNU C 库并不神奇。这只是一些完全正常的代码。您可以编写自己的代码来做完全相同的事情。
标签: c linux system-calls