一.什么是系统调用函数和库函数
系统调用函数是指:通向操作系统本身的接口,是面向底层硬件的。可以使得用户态的进程与硬件设备(如CPU,磁盘,打印机)进行交互的,是操作系统留给应用程序的一个接口。如一下
open: 打开文件或设备
read: 从打开的文件或设备中读取数据
write: 向打开的文件或设备中写入数据
close:关闭文件或者设备
ioctl:把控制信息传递给设备驱动文件
用户进程在发生系统调用的时候,内核将调用内核相关的函数来实现(如sys_read(),sys_write(),sys_fork()) 。用户程序不能直接调用这些函数,这些函数运行在内核态,CPU通过软中断切换到内核态,开始执行内核调用函数。
用户态–>系统调用–>内核态–>返回用户态
实际上使用系统调用会影响系统的性能,在执行调用的从用户态到内核态,在返回到用户态,有系统开销。为了减少开销,因此要减少系统调用的次数,并且让每次系统调用尽可能多的完成任务。硬件也会限制对底层系统调用一次所能写的数据块的大小。
库函数是指:把函数放到库里面,供别人使用的一种方法,把一些常用的函数编写完放到一个文件里面,供不同