c 编译器如何识别系统调用?

Che*_*orz 3 c++ sockets compiler-construction

假设我们想使用“socket”函数创建一个套接字。编译器如何知道它必须为相应的函数调用系统调用?是否有任何内部表记录函数属于特定的库集?

Dav*_*rtz 10

通常的方法是这样的:

您平台的库包括一个被调用的函数socket,该函数包含在您的平台上进行系统调用所需的实际代码。编译器读入一个头文件,告诉它该函数存在,链接器将编译后的代码连接到该函数,并且该函数的库实现进行实际的系统调用。