linux平台下C语言调用C库问题

a309261868 2013-06-27 10:02:56
在linux内核设计与实现关于系统调用一节有以下一段话:


通常系统调用靠C库支持,如果仅仅写出系统调用,glibc库恐怕并不支持,此时得用linux提供的宏进行系统调用。这里我有个疑问,平时在linux下编程时用的read,write函数时C库里的还是linux直接提供的系统调用?如果是linux直接提供的系统调用,为什么我没有用宏__syscalln()也能直接拿来使用???
...全文
155 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
mymtom 2013-06-27
  • 打赏
  • 举报
回复
平时在linux下编程时用的read,write函数时C库里的还是linux直接提供的系统调用? 这个当然是glibc库里的;
空的 2013-06-27
  • 打赏
  • 举报
回复
可以拿出来用啊,然后可移植性就差了,跑到其他型号的机子上就编译不过了
zhxianbin 2013-06-27
  • 打赏
  • 举报
回复
马克一下,看看怎么回事。
mymtom 2013-06-27
  • 打赏
  • 举报
回复
引用 4 楼 a309261868 的回复:
[quote=引用 3 楼 mymtom 的回复:] 平时在linux下编程时用的read,write函数时C库里的还是linux直接提供的系统调用? 这个当然是glibc库里的;
既然read,write函数是C库里的,是不是可以理解为C库里的read,write等不带缓冲的库函数的实现为:1.通过0x80实现软中断2.传递系统调用号。????[/quote] Linux下的系统调用都是软中断实现的,没有第二条路。
a309261868 2013-06-27
  • 打赏
  • 举报
回复
引用 3 楼 mymtom 的回复:
平时在linux下编程时用的read,write函数时C库里的还是linux直接提供的系统调用? 这个当然是glibc库里的;
既然read,write函数是C库里的,是不是可以理解为C库里的read,write等不带缓冲的库函数的实现为:1.通过0x80实现软中断2.传递系统调用号。????

23,124

社区成员

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

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