当前位置:  技术问答>linux和unix

C语言应用程序使用的函数来源于libc库, Libc库中的函数是在哪里实现的??

    来源: 互联网  发布时间:2016-11-27

    本文导语:  如题 我想知道应用程序调用一个函数的具体过程 比如:应用程序中调用read()函数, 先到libc库里找?? 再到内核里面?? 然后再返回用户空间?? 这个过程我不太清楚,请高手解答!!!最好举个例子!! ...

如题

我想知道应用程序调用一个函数的具体过程
比如:应用程序中调用read()函数, 先到libc库里找?? 再到内核里面?? 然后再返回用户空间??
这个过程我不太清楚,请高手解答!!!最好举个例子!!

|
1、“普通函数”,如str*等等很多函数,在glibc中实现了,只要包含对应的头文件即可使用。
2、系统调用,典型的如read、write、open等等,如2楼所说。
网上有一些简单的字符设备驱动,大意是从用户空间写(write)一字符串到内核空间,再从内核空间读(read)到用户空间。两者的交互通过copy_*_user来实现。可以去搜索一下。

|
一个简单的例子用来理解(未必完全正确):printf
printf在libc中被实现,在其实现过程中,通过write系统调用向实际硬件设备传送待写字符。write系统调用触发软中断,从而陷入内核态,保存当前进程状态后,开始在内核中实现真正的物理操作,传送完成后读取进程描述符,进而恢复到当前进程,也就是返回了用户态,至此系统调用完成,printf继续执行下面的语句(如果还有的话),最终printf执行完成,返回到调用程序。
以上过程忽略了进程抢占及同步等实际问题。只是一个大致的过程介绍。

    
 
 

您可能感兴趣的文章:

  • Linux下C语言strstr()查找子字符串位置函数详细介绍(strstr原型、实现及用法)
  • java 的条件判断函数(类似于别的语言iif函数)
  • Unix系统函数和C语言标准函数库有重叠的部分吗?
  • c语言也能重载函数? 怎么解释。unix编程的open函数。
  • HTML 脚本语言介绍及<script>标签用法 iis7站长之家
  • 我在c语言下建立一个函数,难道不能在函数名称前加 void 么?
  • 在Unix下C语言中的SignalInit函数怎么用
  • Linux添加系统调用时如何调用C语言库函数
  • C语言中函数声明与调用问题
  • c语言 字符串函数 子串
  • C语言哈希函数库 murmur3
  • C语言字符串函数库 Strfunc
  • 常用C语言函数库 libasn
  • 如何实现类似PHP.PB等语言中eval的函数功能?
  • 哪里有linux下C语言库函数手册?
  • 何处可得 标准C语言函数源代码?
  • LINUX C语言中,用什么函数可以设置日期和时间?
  • 函数式编程语言 Whiley
  • linux下C语言怎么没有getch()函数?
  • 怎么阅读c语言的程序?到什么地方找每个函数都是做什么的?
  • C语言中什么函数可以设置程序的当前工作路径
  • 如何将C语言代码转换为应用程序(也就是编译)
  • unix下用什么语言编应用程序?(急)
  • linux 桌面应用程序和web应用程序编写常用的语言
  • 怎样用C相关语言在linux下写应用程序
  • 关于嵌入式linux应用程序使用那种语言的问题
  • C语言程序,软定时器应用的实例
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 2013年7月和2013年8月编程语言排行榜
  • 如何在GTK2.0下实现国际化(语言选择根据自己设置的语言,不用系统的语言)
  • 2017 年热门编程语言排行榜出炉,你的语言上榜没?
  • C语言中有指针,因此C语言可以创建链表,那么Java语言没有指针,那Java是否可以创建链表呢?
  • 苹果OS X和IOS下最新编程语言swift介绍
  • 求助,在linux下,c语言和汇编语言的接口是什么?
  • c语言判断某一年是否为闰年的各种实现程序代码
  • C语言中间语言 CIL
  • PHP编程语言介绍及安装测试方法
  • 最近学JSP,苦于HTML语言和JAVA语言太差,请教推荐几本书,thanks.
  • c语言实现MD5算法完整代码示例
  • 动态编程语言 LIME编程语言
  • 以NetBeans IDE为例介绍如何使用XML中Schema语言
  • C语言如何改变当前语言环境
  • c语言基于libpcap实现一个抓包程序过程
  • 如何在VIM中使汇编语言和C语言自动缩进?
  • HTML超文本标记语言教程及实例
  • 我安装的linux时默认语言选择的是中文,又乱码,怎么可以解决?怎么更改默认语言成英文?
  • MD5算法的C语言实现
  • Redhat9安装时语言只选择了中文,现在还能再增加其它语言的支持吗?如英文
  • HTML 脚本语言介绍及<script>标签用法
  • 请问哪里有ubuntu 9.0版本的中文语言包和KDE的中文语言包下载,我用Google搜索了很多地方都没有!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3