库函数和系统调用函数

库函数在函数库文件中实现,执行时在用户态执行

系统调用函数是系统内核向用户用户空间提供的接口,系统调用函数有用户态调用,实现在内核态

系统调用函数实现原理
系统调用函数出发0x80中断,并且将系统调用号存储在eax寄存器中,然后陷入内核,内核开始执行中断处理程序,在系统调用表中查找系统调用号对应的系统内核函数,调用执行完成后又将返回值通过eax寄存器传递回用户空间。

库函数和系统调用函数的区别

  1. 库函数在函数库文件中实现,系统调用函数在系统内核中实现;
  2. 库函数有可能需要转调系统调用函数,例如fopen()、printf()等函数,也有可能不需要转调系统调用函数。例如strlen()、strcpy()等函数。

你可能感兴趣的:(Linux)