linux 的系统调用?

butterflygogogo 2010-12-11 08:33:04
在window下面 系统提供的函数 我们叫做api
那么在linux下面 系统提供的函数 就叫做系统调用吗?
那么这些函数都或者说是类 都linux内核源码中提供的 对不?
比如说 我在编程的时候用到这样几个包含文件
#include <sys/socket.h>

#include <netdb.h>

#include <sys/time.h>

#include <sys/types.h>
那么这些头文件和源文件都是linux内核源码提供的吗?

小弟菜鸟 得先把这些简单的东西搞清楚了 否则越来越糊涂阿
...全文
174 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
alberye 2010-12-13
  • 打赏
  • 举报
回复
支持四楼的说法
fushaobing2010 2010-12-13
  • 打赏
  • 举报
回复
跟内核打交道有两种方式:系统调用和库函数。(两者都可以叫做API.)
系统调用是内核直接提供的。
库函数的实质还是调用了系统调用。
butterflygogogo 2010-12-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 subfate 的回复:]

主席速度灰常快!佩服!

一般地,在/usr/include目录下的头文件是glibc的。——我们大部分的程序默认的头文件路径就是这样(当然,其它的如QT程序不在这里)。

内核提供的头文件一般在linux-x.y.z/include目录下。一般地,我们写内核驱动程序时可以只使用内核头文件(kernel-headers,不知道这样的说法行不行)而不用下载整个内核源代码,当然,使用完整的内……
[/Quote]
老大 加我qq呗 好多东西不会 需要交流啊。。331663121 或者msn: zhangjian33446@live.cn
李迟 2010-12-12
  • 打赏
  • 举报
回复
主席速度灰常快!佩服!

一般地,在/usr/include目录下的头文件是glibc的。——我们大部分的程序默认的头文件路径就是这样(当然,其它的如QT程序不在这里)。

内核提供的头文件一般在linux-x.y.z/include目录下。一般地,我们写内核驱动程序时可以只使用内核头文件(kernel-headers,不知道这样的说法行不行)而不用下载整个内核源代码,当然,使用完整的内核源代码也可以。

前者的例子正如你所列的;
后者的例子比如
#include<linux/module.h>
#include <linux/kernel.h>

看似很复杂,其实它们是不同的两个东西。
gohome520 2010-12-12
  • 打赏
  • 举报
回复
应用程序编程一般只会用到glibc,由glibc再去系统调用。
laoshizhuce 2010-12-12
  • 打赏
  • 举报
回复
涨了点知识
steptodream 2010-12-11
  • 打赏
  • 举报
回复
直接用rpm来查询就知道是属于哪个包了!

比如
#include <sys/time.h>

[root@rhel5 ~]# rpm -qf /usr/include/sys/time.h
glibc-headers-2.5-49

可以看出time.h属于glibc-headers包

#include<stdio.h>
[root@rhel5 etc]# rpm -qf /usr/include/stdio.h
glibc-headers-2.5-49

可以看出stdio.h也属于glibc-headers包
butterflygogogo 2010-12-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 subfate 的回复:]

应用层的东西是由glibc提供的。
内核有自己实现的函数。
[/Quote]
#include <sys/time.h>
像这个头文件 应该是内核提供的
#include<stdio.h>
像这个头文件 应该是glibc提供的

我这样理解对吗?
李迟 2010-12-11
  • 打赏
  • 举报
回复
应用层的东西是由glibc提供的。
内核有自己实现的函数。
leafsoar 2010-12-11
  • 打赏
  • 举报
回复
glibc

23,116

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧