Chinaunix首页 | 论坛 | 博客
  • 博客访问: 115083
  • 博文数量: 42
  • 博客积分: 916
  • 博客等级: 准尉
  • 技术积分: 420
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-16 10:01
文章分类

全部博文(42)

文章存档

2011年(42)

分类: LINUX

2011-08-10 11:13:05

这个问题已经有点老生常谈了。这里简单记录一下。

库调用

  • 通常调用的是代码库中的函数,如GLIBC,LIBGCC,LIBSTDC++,BOOST之类的库
  • 这些库函数会和程序链接,静态链和动态链都可以
  • 仅仅在用户态,即用户地址空间內执行
  • 多数为了避免程序员重复劳动,封装复杂编码或者性能提升

系统调用

  • 由操作系统提供的一类函数
  • 提供操作系统才能实现的服务
  • 函数主要在内核态,即内核地址空间內执行。
  • 因为牵涉到内核态和用户态的切换问题,通常调用代价大。

通常这两者的概念区别并不明显,有些库函数也会内部封装系统调用,比如printf。

阅读(1000) | 评论(0) | 转发(0) |
0

上一篇:apue note1-about DIR

下一篇:Linux内存分析

给主人留下些什么吧!~~