嵌入式每日八股1.4
系统调用是什么,你用过哪些系统调用,和库函数有什么区别?
系统调用
系统调用是操作系统提供给应用程序的一组接口,用于访问底层系统资源(如文件、网络、进程等)。应用程序通过系统调用请求操作系统执行某些特定的操作,例如创建进程、读取文件、发送数据等。
常见的系统调用包括:
- 文件系统操作:打开文件、读取文件、写入文件、关闭文件等。
- 进程控制:创建进程、终止进程、等待进程结束等。
- 网络通信:建立连接、发送数据、接收数据等。
- 内存管理:分配内存、释放内存等。
- 设备控制:读取设备、写入设备等。
不同的操作系统可能会提供不同的系统调用,但通常都会提供以上基本的功能。应用程序通过系统调用与操作系统进行交互,从而实现对底层系统资源的访问。
库函数 库函数(Library function)是把函数放到库里,供别人使用的一种方式。方法是把一些常用到的函数编完放到一个文件里,供不同的人进行调用。一般放在.lib文件中。库函数调用则是面向应用开发的,库函数可分为两类,一类是C语言标准规定的库函数,一类是编译器特定的库函数。
区别
- 库函数在用户地址空间执行,系统调用是在内核地址空间执行,库函数运行时间属于用户时间,系统调用属于系统时间,库函数开销较小,系统调用开销较大
- 库函数是有缓冲的,系统调用是无缓冲的
- 库函数并不依赖平台,库函数调用与系统无关,不同的系统,调用库函数,库函数会调用不同的底层函数实现,因此可移植性好。系统调用依赖平台
【嵌入式八股】精华版 https://www.nowcoder.com/creation/manager/columnDetail/0rOeJm
【嵌入式八股】一、语言篇https://www.nowcoder.com/creation/manager/columnDetail/mwQPeM
【嵌入式八股】二、计算机基础篇https://www.nowcoder.com/creation/manager/columnDetail/Mg5Lym
【嵌入式八股】三、硬件篇https://www.nowcoder.com/creation/manager/columnDetail/MRVDlM
【嵌入式八股】四、嵌入式Linux篇https://www.nowcoder.com/creation/manager/columnDetail/MQ2bb0