标准库函数是对系统调用的封装,以方便移值。

人们在长期编程中发现使用系统调用有个重大的缺点,那就程序的移植性,比如说:linux 系统提供的系统调用的函数和 windows 就不一样,二者不单单是实现的方式不同,提供给用户的函数名,参数都不同,这个可以理解。因此一个实现好的程序,利用了 linux 的系统调用譬如说 wait4 函数,那么他在 windows 上编译是通不过的。于是人们想了个办法,就是封装了 windows 和 linux 系统调用,给大家一个统一的函数(我习惯叫它接口),那么这样程序的移植性问题就解决了。

所以可以这么认为库函数是对系统调用的封装(不是所有的库函数都是),为的是解决一些公共的问题和提供统一的系统调用的接口,他和系统调用的优缺点就是:系统调用速度是明显要快于库函数(并不一定全部是,但绝大部分是),但系统调用缺乏移植性。库函数速度要慢,但解决了移植问题。这些在开发过程中要根据自己的实际情况来决定使用那一个。

(SAW:Game Over!)

标准库函数、系统调用的区别相关推荐

  1. 标准库函数和系统调用的区别

    写在前面:所谓标准库函数,这里暂时讨论C语言的标准库函数.库函数是语言本身的一部分,而系统函数是内核提供给应用程序的接口,属于系统的一部分.函数库调用是语言或应用程序的一部分,而系统调用是操作系统的一 ...

  2. 系统调用和库函数调用的区别

    从程序完成的功能来看,函数库提供的函数通常是不需要操作 系统 的服务. 函数是在用户空间内执行的,除非函数涉及到I/O操作等,一般是不会切到核心态的.系统调用是要求操作系统为用户提供进程,提供某种服务 ...

  3. 标准库IO与系统调用IO区别与联系

    标准库IO接口: 一般程序运行起来,自动默认打开 标准输入文件  fd=0(scanf),标准输出文件  fd=1(printf),  标准错误文件  fd=2 fopen   打开文件 FILE* ...

  4. 底层文件I/O和ANSI标准I/O的区别

    一.先来了解下什么是文件I/O和标准I/O: 文件I/O:文件I/O称之为不带缓存的IO(unbuffered I/O).不带缓存指的是每个read,write都调用内核中的一个系统调用.也就是一般所 ...

  5. python语言的标准库有哪些,python标准库函数有哪些

    PyFlux库函数是什么? PyFlux是Python编程语言的开源时间序列库.PyFlux是Python中为处理时间序列问题而创建的开源库. 该库有一系列极好的时间序列模型,包括但不限于 ARIMA ...

  6. 基于标准库函数与基于HAL库函数的stm32编程方式对比

    基于标准库函数与基于HAL库函数的stm32编程方式对比 一.标准库函数 二.HAL库函数 三.差异 四.stdunio IDE试玩 参考资料 一.标准库函数 1.标准库的解释 标准外设库(Stand ...

  7. Kotlin基础 字符串操作与数字类型转换、标准库函数

    一.字符串操作 1.substring 字符串截取,substring函数支持IntRange类型(表示一个整数范围的类型)的参数,until创建的范围不包括上限值(包前不包后). const val ...

  8. Keil MDK 中利用串口及c标准库函数printf为cortex-m3做调试输出(lpc1788)

    摘要: c标准库的printf是输出给显示器的,将printf函数进行修改,使其输出重定向至串口,就能实现目的.printf函数调用fputc函数完成实质输出单一字符的工作,因此将fputc函数修改使 ...

  9. C++ Primer 5th笔记(chap 14 重载运算和类型转换)标准库函数对象

    1. 定义 标准库定义的函数对象(Library-Defined Function Objects):标准库在头文件functional中定义了一组表示算术运算符.关系运算符和逻辑运算符的类,每个类分 ...

最新文章

  1. 自定义View步骤学习笔记
  2. 单变量线性回归中的梯度下降法求解代价函数的最小值
  3. spring中的JdbcTemplate——JdbcTemplate的最基本用法
  4. UA OPTI512R 傅立叶光学导论8 多元脉冲函数
  5. 当一个有性能问题的数据库摆在你的面前,作为责任人,你的处理思路是什么?...
  6. vim note(6)--vim的一个较全的介绍(转)
  7. 上班第一天(6)--一个程序员的成长史(15)
  8. Java开发环境搭建详细步骤
  9. Java即时类| toString()方法与示例
  10. 谁说大学生找工作难?鄙视说这样话的人!!
  11. android 属性动画还原,属性动画和补间动画
  12. Android-----巧用科大讯飞语句实现中文语音播报
  13. c# oldb连接_C# 连接数据库(ODBC、Oledb、Oracle)
  14. python真的是吹过了-被吹的神乎其神的Python到底都能干什么
  15. StreamSets sdc rpc 测试
  16. metasfresh 大型java开源制造业erp介绍
  17. 计算机应用基础项目化教程ppt,计算机应用基础项目化教程_课件
  18. 状语从句不是简单句_简单句、并列句、复合句
  19. 分区表怎么修复【转】
  20. 关于经纬度试算距离和范围

热门文章

  1. 客户区坐标与屏幕坐标之间的转换问题
  2. 安全源于细节:云环境下如何保证应用安全
  3. adnroid开发环境的搭建
  4. spring对JDBC的支持
  5. qaxobject识别html,QT界面开发-QAxObject 读写excel(COM组件)-常用功能封装代码
  6. 用私有构造器或者枚举类型强化Singleton 属性
  7. vue的插值语法及el和data、methods语法释义
  8. 服务器上的hdfs的配置文件中,namenode不能设置成127.0.0.1或者localhost,要设置ip或者映射别名
  9. linux命令使用示例:查看某目录属于哪个分区
  10. linux 生成随机数命令