标准库函数、系统调用的区别
标准库函数是对系统调用的封装,以方便移值。
人们在长期编程中发现使用系统调用有个重大的缺点,那就程序的移植性,比如说:linux 系统提供的系统调用的函数和 windows 就不一样,二者不单单是实现的方式不同,提供给用户的函数名,参数都不同,这个可以理解。因此一个实现好的程序,利用了 linux 的系统调用譬如说 wait4 函数,那么他在 windows 上编译是通不过的。于是人们想了个办法,就是封装了 windows 和 linux 系统调用,给大家一个统一的函数(我习惯叫它接口),那么这样程序的移植性问题就解决了。
所以可以这么认为库函数是对系统调用的封装(不是所有的库函数都是),为的是解决一些公共的问题和提供统一的系统调用的接口,他和系统调用的优缺点就是:系统调用速度是明显要快于库函数(并不一定全部是,但绝大部分是),但系统调用缺乏移植性。库函数速度要慢,但解决了移植问题。这些在开发过程中要根据自己的实际情况来决定使用那一个。
(SAW:Game Over!)
标准库函数、系统调用的区别相关推荐
- 标准库函数和系统调用的区别
写在前面:所谓标准库函数,这里暂时讨论C语言的标准库函数.库函数是语言本身的一部分,而系统函数是内核提供给应用程序的接口,属于系统的一部分.函数库调用是语言或应用程序的一部分,而系统调用是操作系统的一 ...
- 系统调用和库函数调用的区别
从程序完成的功能来看,函数库提供的函数通常是不需要操作 系统 的服务. 函数是在用户空间内执行的,除非函数涉及到I/O操作等,一般是不会切到核心态的.系统调用是要求操作系统为用户提供进程,提供某种服务 ...
- 标准库IO与系统调用IO区别与联系
标准库IO接口: 一般程序运行起来,自动默认打开 标准输入文件 fd=0(scanf),标准输出文件 fd=1(printf), 标准错误文件 fd=2 fopen 打开文件 FILE* ...
- 底层文件I/O和ANSI标准I/O的区别
一.先来了解下什么是文件I/O和标准I/O: 文件I/O:文件I/O称之为不带缓存的IO(unbuffered I/O).不带缓存指的是每个read,write都调用内核中的一个系统调用.也就是一般所 ...
- python语言的标准库有哪些,python标准库函数有哪些
PyFlux库函数是什么? PyFlux是Python编程语言的开源时间序列库.PyFlux是Python中为处理时间序列问题而创建的开源库. 该库有一系列极好的时间序列模型,包括但不限于 ARIMA ...
- 基于标准库函数与基于HAL库函数的stm32编程方式对比
基于标准库函数与基于HAL库函数的stm32编程方式对比 一.标准库函数 二.HAL库函数 三.差异 四.stdunio IDE试玩 参考资料 一.标准库函数 1.标准库的解释 标准外设库(Stand ...
- Kotlin基础 字符串操作与数字类型转换、标准库函数
一.字符串操作 1.substring 字符串截取,substring函数支持IntRange类型(表示一个整数范围的类型)的参数,until创建的范围不包括上限值(包前不包后). const val ...
- Keil MDK 中利用串口及c标准库函数printf为cortex-m3做调试输出(lpc1788)
摘要: c标准库的printf是输出给显示器的,将printf函数进行修改,使其输出重定向至串口,就能实现目的.printf函数调用fputc函数完成实质输出单一字符的工作,因此将fputc函数修改使 ...
- C++ Primer 5th笔记(chap 14 重载运算和类型转换)标准库函数对象
1. 定义 标准库定义的函数对象(Library-Defined Function Objects):标准库在头文件functional中定义了一组表示算术运算符.关系运算符和逻辑运算符的类,每个类分 ...
最新文章
- 自定义View步骤学习笔记
- 单变量线性回归中的梯度下降法求解代价函数的最小值
- spring中的JdbcTemplate——JdbcTemplate的最基本用法
- UA OPTI512R 傅立叶光学导论8 多元脉冲函数
- 当一个有性能问题的数据库摆在你的面前,作为责任人,你的处理思路是什么?...
- vim note(6)--vim的一个较全的介绍(转)
- 上班第一天(6)--一个程序员的成长史(15)
- Java开发环境搭建详细步骤
- Java即时类| toString()方法与示例
- 谁说大学生找工作难?鄙视说这样话的人!!
- android 属性动画还原,属性动画和补间动画
- Android-----巧用科大讯飞语句实现中文语音播报
- c# oldb连接_C# 连接数据库(ODBC、Oledb、Oracle)
- python真的是吹过了-被吹的神乎其神的Python到底都能干什么
- StreamSets sdc rpc 测试
- metasfresh 大型java开源制造业erp介绍
- 计算机应用基础项目化教程ppt,计算机应用基础项目化教程_课件
- 状语从句不是简单句_简单句、并列句、复合句
- 分区表怎么修复【转】
- 关于经纬度试算距离和范围
热门文章
- 客户区坐标与屏幕坐标之间的转换问题
- 安全源于细节:云环境下如何保证应用安全
- adnroid开发环境的搭建
- spring对JDBC的支持
- qaxobject识别html,QT界面开发-QAxObject 读写excel(COM组件)-常用功能封装代码
- 用私有构造器或者枚举类型强化Singleton 属性
- vue的插值语法及el和data、methods语法释义
- 服务器上的hdfs的配置文件中,namenode不能设置成127.0.0.1或者localhost,要设置ip或者映射别名
- linux命令使用示例:查看某目录属于哪个分区
- linux 生成随机数命令