APUE中对系统调用和库函数的相同点和区别进行了详细的解释:
相同点:系统调用和库函数都以C函数的形式出现,两者都对应用程序提供服务。
区别:我们可以替换库函数,但是通常却不能替换系统调用。应用程序可以调用系统调用或者库函数,而很多库函数则会调用系统调用。
有些库函数甚至不会调用系统调用,如strcpy和atoi等库函数就没有调用任何系统调用;有的库函数会调用多次系统调用。
每个系统调用都是内核的一个入口点,即会进入内核态(这一点是自己的理解,对不对?)