上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 30 下一页
摘要: 当一个工程中有多个文件的时候,链接的本质就是要把多个不同的目标文件相互粘到一起。就想玩具积木一样整合成一个整体。为了使不同的目标文件之间能够相互粘合,这些目标文件之间必须要有固定的规则才行。比如目标文件B用到了目标文件A中的函数”foo”,那么我们就称目标文件A定义了函数foo,目标文件B引用了函数 阅读全文
posted @ 2018-05-22 22:30 red_leaf_412 阅读(4055) 评论(0) 推荐(0) 编辑
摘要: 当系统中有多个进程到时候,哪个进程先执行,哪个进程后执行是由进程的优先级决定的。进程的优先级是由nice值决定的、nice值越小,优先级越高。可以看做越友好那么调度优先级越低。进程可以通过nice函数获取更改它的nice值,进程只能影响自己的nice值,不能影响其他进程的nice值 #include 阅读全文
posted @ 2018-05-21 21:18 red_leaf_412 阅读(824) 评论(0) 推荐(0) 编辑
摘要: ELF目标文件格式的最前部是ELF文件头。包含了整个文件的基本属性。比如ELF文件版本,目标机器型号,程序入口地址等。然后是ELF的各个段,其中ELF文件中与段有关的重要结构就是段表。段表描述了ELF文件包含的所有段的信息,比如每个段的段名,段的长度,在文件中的偏移,读写权限及段的其他属性。 一 文 阅读全文
posted @ 2018-05-19 07:01 red_leaf_412 阅读(2029) 评论(0) 推荐(0) 编辑
摘要: fork()函数通过系统调用创建一个与原来进程(父进程)几乎完全相同的进程(子进程是父进程的副本,它将获得父进程数据空间、堆、栈等资源的副本。注意,子进程持有的是上述存储空间的“副本”,这意味着父子进程不共享这些存储空间。linux将复制父进程的地址空间内容给子进程,因此,子进程由了独立的地址空间。 阅读全文
posted @ 2018-05-16 21:57 red_leaf_412 阅读(570) 评论(0) 推荐(0) 编辑
摘要: 我们将之前的代码增加下变量来具体看下 在代码中增加了全局变量以及静态变量,还有一个简单的函数。 #include <stdio.h> int global_var=1; int global_init_var; void func1(int i){ printf("%d\n",i); } int m 阅读全文
posted @ 2018-05-15 22:08 red_leaf_412 阅读(1830) 评论(0) 推荐(0) 编辑
摘要: 前面介绍了父子进程,如果当多个进程企图对共享数据进行处理。而最后的结果又取决于进程运行的顺序时,就认为发生了竞争关系。通过下面的例子来看下 在这里标准输出被设置为不带缓冲的,于是父子进程每输出一个字符就要进行一次write调用。这样做的目的是尽可能多次地在两个进程之间进行切换,以便演示竞争条件。 s 阅读全文
posted @ 2018-05-14 21:58 red_leaf_412 阅读(657) 评论(0) 推荐(0) 编辑
摘要: 对于分析网页或者写爬虫的时候经常需要用到抓包工具进行网页数据的抓包。在Windows下可以安装Fiddler来抓包。在ubuntun下不能直接安装Fiddler。需要先安装mono 1 首先安装mono环境:apt-get install mono-complete 2 下载一个最新的Fidder 阅读全文
posted @ 2018-05-13 21:46 red_leaf_412 阅读(1031) 评论(0) 推荐(0) 编辑
摘要: 我们在写程序的时候,windows下通过vs等编译软件,linux通过gcc命令得到程序的可执行文件。在这个过程中,其实大致经历了4个过程。1 预编译 2 编译 3 汇编 4 链接 1 预编译:主要处理那些源代码文件中的以”#”开头的预编译指令,比如”#include”,“#define”等。 2  阅读全文
posted @ 2018-05-11 22:17 red_leaf_412 阅读(1982) 评论(0) 推荐(0) 编辑
摘要: 一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程, 也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。 fork调用的一个奇妙之处就是它仅仅被调用一次,却能够返回两次,它可能有三种不同的返回值: 阅读全文
posted @ 2018-05-09 10:11 red_leaf_412 阅读(611) 评论(0) 推荐(0) 编辑
摘要: 一 进程终止: ⼀个进程可以登记若⼲个(具体⾃⼰验证⼀下)个函数,这些函数由exit⾃动调⽤,这些函数被称为终⽌处理函数, atexit函数可以登记这些函数。 exit调⽤终⽌处理函数的顺序和atexit登记的顺序相反,如果⼀个函数被多次登记,也会被多次调⽤。 以下函数的调用时程序异常或者正常终止: 阅读全文
posted @ 2018-04-30 21:17 red_leaf_412 阅读(182) 评论(0) 推荐(0) 编辑
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 30 下一页