博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
程序员的自我修养 学习笔记(5)
阅读量:7251 次
发布时间:2019-06-29

本文共 853 字,大约阅读时间需要 2 分钟。

运行库

     程序的入口点,实际上是一个程序的初始化和结束部分,往往是运行库的一部分。典型的程序运行步骤大致如下:

    1. 操作系统在创建进程后,把控制权交给了程序入口,此入口通常为运行库中的某个入口函数

   2. 入口函数堆运行库和程序运行环境进行初始化,包括堆栈、I/O、线程、全局变量构造等等

   3. 完成初始化后,调用main函数,正式开始执行程序的主体部分。

   4. main函数执行完毕后,返回到入口函数,入口函数进行后续的清理工作,包括全局变量析构、堆销毁、关闭I/O,然后进行系统调用结束进程。

   glibc程序的入口地址为_start,这个入口有ld连接器默认的链接脚本所指定。

 

C语言标准库,ANSI C的标准库由24个C头文件组成,仅仅包含了数学函数、字符/字符串处理、I/O等基本方面。例如

       标志输入输出 文件操作 stdio.h

       字符操作 ctype.h

       字符串操作 string.h

       数学函数     math.h

      资源管理/格式转化   stdlib.h

      时间/日期   time.h

     断言   assert.h

     各种类型上的常数   limits.h  float.h

      

 

glibc库:glibc库,即GNU C Library,是GNU旗下的C标准库,最初由自由软件基金会发起开发,目的是为GNU操作系统开发一个C标准库。glibc的发布版本主要由两部分组成,一部分是头文件,比如stdio.h,stdlib.h等等,往往位于/usr/include、另一部分,则是库的二进制文件部分,就是C语言的标准库,它有静态和动态两个版本。动态库为/lib/libc.so.6(即为第六个libc版本),静态库为/usr/lib/libc.a

glibc的启动文件,有.init 和 .finit段,这两个段中的代码,最终会被拼成两个函数_init()和_finit(),这两个函数会先于/后于/main函数执行。

Windows系统是完全基于DLL机制的,它通过DLL对系统调用进行了包装,进行了所谓了Windows API。

image

转载地址:http://xphbm.baihongyu.com/

你可能感兴趣的文章
CCIE职业发展系列典型案列分析之RIPv1协议配置的解决方案
查看>>
【高德地图API】如何制作自己的旅游地图?
查看>>
windbg 通过网络联机调试配置
查看>>
iOS 瘦身之道
查看>>
nodejs的配置
查看>>
centos7下集群部署zookeeper(伪集群)
查看>>
mysql主从复制
查看>>
IT168:2014年APT***发展趋势及防御策略调研
查看>>
用好ul和li
查看>>
基于JQUERY的AJAX跨域问题完美解决方案
查看>>
搭建LVS+Keepalived高可用负载均衡集群
查看>>
局域网PING不通原因是什么?解决ping不通局域网电脑
查看>>
泄露们事件
查看>>
springmvc提交带日期的表单400
查看>>
我的友情链接
查看>>
使用Python socket获取本机ip
查看>>
java 简单的加解密操作
查看>>
qmake 之 CONFIG 与 QT 乱谈
查看>>
ExtJS 创建动态加载树
查看>>
我的友情链接
查看>>