摘要: 1、exit函数和return函数的主要区别是: 1)exit用于在程序运行的过程中随时结束程序,exit的参数是返回给OS的。main函数结束时也会隐式地调用exit函数。exit函数运行时首先会执行由atexit()函数登记的函数,然后会做一些自身的清理工作,同时刷新所有输出流、关闭... 阅读全文
posted @ 2016-11-25 18:59 luizp 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 一、程序内存分配 栈:用于维护函数调用的上下文; 堆:容纳应用程序动态分配的内存区域。 如下图Linux进程地址空间分布 Linux下有一个动态链接库映射区用于动态链接库的加载映射,Linux下从0X40000000地址开始分配此区域的空间。 二、调用惯例 调用惯例一般指如下几个方面: 1、... 阅读全文
posted @ 2016-11-20 15:27 luizp 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 一、导入导出符号 ELF中默认导出所有的全局符号,Windows中需要使用“__deslcpec(dllexport)”修饰某个函数或者变量表示导出该函数或者变量,“__deslcpec(dllimport)”表示导入该函数或者变量。也可以使用.def文件来声明导入导出符号。 二、运行时链接 W... 阅读全文
posted @ 2016-11-13 14:57 luizp 阅读(372) 评论(0) 推荐(0) 编辑
摘要: 一、“--export-dynamic”参数的使用 GCC编译可执行文件时可以使用-Wl,--export-dynamic参数,此时链接器产生可执行文件时会将所有全局符号导出到动态符号表。 gcc -Wl,--export-dynamic -o p1 p1.c -L. -l0 如果在创建动态链... 阅读全文
posted @ 2016-11-13 13:35 luizp 阅读(1958) 评论(0) 推荐(0) 编辑
摘要: 一、core分析 1、查看命令: ulimit -c 启动命令: ulimit -c ulimited 查看core文件: gdb -c core.xxx a.out 2、生成core文件的路径在文件/etc/sysctl.conf中 cat /etc/sysctl.conf sysctl.... 阅读全文
posted @ 2016-11-12 13:55 luizp 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 1、概述 文件是I/O设备的抽象表示,虚拟存储​器是对主存和磁盘I/O设备的抽象表示,进程则是对存储器、主存和I/O设备的抽象表示。 2、​C语言static 在C语言中,C源文件扮演模块的角色,任何声明带有static属性的全局变量或者函数都是私有的,类似于C++中的private,只... 阅读全文
posted @ 2016-11-12 13:48 luizp 阅读(132) 评论(0) 推荐(0) 编辑