如何知道C中的函数是否是系统调用

Jes*_*uis 3 c system call

我真的不明白这个话题.例如,功能如

  • printf()
  • strlen()
  • malloc()

哪个是系统调用,哪个不是?在给我一个函数时我怎么知道它?在Google上没有找到任何内容.

kfx*_*kfx 8

这取决于系统.有一个手册页syscalls列出了Linux上的系统调用,例如:http://man7.org/linux/man-pages/man2/syscalls.2.html

此列表还取决于版本:有时会将新系统调用添加到Linux内核中.

列表中的所有功能都不是系统调用.然而,它们的实现可以使用系统调用:printf使用write系统调用,malloc使用mmapmmap2brk系统调用.相反,典型的实现strlen不会使用系统调用.