问问题描述
答精选答案

C标准库,是C标准(比如C89)的实现。C标准试图向应用开发者提供一组统一通用的函数和数据结构,让应用开发者在大部分不同的系统平台(硬件架构+操作系统)都能使用一些相同的功能、做到相同的事,也就是可移植性。而操作系统API(系统调用)向应用开发者提供了一组访问内核功能和底层硬件的接口,让应用开发者能最直接、最高效、最细粒度地和某个或某类特定系统平台打交道。操作系统API通常直接提现了系统平台的功能特性、设计哲学。有的操作系统API会跟系统的目标硬件平台绑定很紧密;而有的操作系统API,可能会遵循一些除了C标准之外的其它标准,比如POSIX,试图达到一定的通用性和可移植性。从功能上来说,C标准库和不同平台的操作系统API存在一些交集,也有一些各自独立的部分。交集的那部分,C标准库通常是依赖于相应的操作系统API来实现的,也就是对操作系统API的跨平台封装。其它答案大量提到的一个例子就是文件读写相关的功能,linux有提供原生的系统调用(open、read、write),而C标准库里面也有stdio(fopen、fread、fwrite)。进行高性能文件读写编程的时候,大都是直接用read/write的,甚至是sendfile。另外,linux系统调用里面有个fcntl,提供了对文件属性的精细控制,而C标准库里面并没有什么函数能提供类似的功能。
本文来自作者[quanzhouqinggongzhiyexuey]投稿,不代表公众科技网立场,如若转载,请注明出处:https://www.cpst.net.cn/jingxuan/2003565.html
评论列表(4条)
我是公众科技网的签约作者“quanzhouqinggongzhiyexuey”!
希望本篇文章《什么是操作系统的API》能对你有所帮助!
本站[公众科技网]内容主要涵盖:教育咨询,知识百科
本文概览:C标准库,是C标准(比如C89)的实现。C标准试图向应用开发者提供一组统一通用的函数和数据结构,让应用开发者在大部分不同的系统平台(硬件架构+操作系统)都能使用一些相同的功能、做到相同的事,也就是可移植性。而操作系统API(系统调用)向应用开发者提供了一组访问内核功能和底层硬件的接口,让应用开发者能最直接、最高效、最细粒度地和某个或某类特定系统平台打交道。操作系统API通常直接提现了系统平台的功能特性、设计哲学。有的操作系统API会跟系统的目标硬件平台绑定很紧密;而有的操作系统API,可能会遵循一些除了C