码迷,mamicode.com
首页 > 系统相关 > 详细

linux学习笔记 (fork && FILE && PC)

时间:2016-06-20 19:04:30      阅读:243      评论:0      收藏:0      [点我收藏+]

标签:linux

一、

下面的代码是对fork的测试

技术分享

运行结果为:

技术分享

可以看出,所有进程的pid 为 10604 ~ 10611  (共 8 个   2 ^ 3)

 

修改循环条件,让循环执行5次,

所有进程的pid 为 : 10637 ~ 10668 (共 32 个  2 ^ 5)

 

可以看出,循环执行n次,进程的数目为: 2 ^ n 个

 

二、

FILE结构体:

首先定位:

cd /usr/include

搜索:

gerp ‘FILE‘ stdio.h

 

搜索出了一大堆,但其中有一行代码:

 typedef struct _IO_FILE FILE;

所以接下来搜索 _IO_FILE:

  grep ‘_IO_FILE‘ *.h

搜索出了几行,其中有一行:

   libio.h:struct _IO_FILE

这说明我们要找的_IO_FILE 是在 libio.h

所以接下来打开libio.h

 vim libio.h

然后,在底栏模式下搜_IO_FILE

:/_IO_FILE

多搜几次,直到搜索到定义。

搜到的定义如下:

技术分享

 

三、

先看下面这段代码:

技术分享

当注释的那段 sleep(5)存在时,

父进程要比子进程结束地晚,这时,输出的结果为:

技术分享

这符合我们的预期

 

然而,如果想我图片中那样注释掉 sleep(5) 这一行代码,

父进程会先于子进程结束。

 

对于子进程来说,它正在执行,突然它的父进程结束了,

这时候,该子进程就叫做“孤儿进程”,

它的父进程变为 init(1号进程)

 

 

 

linux学习笔记 (fork && FILE && PC)

标签:linux

原文地址:http://zhweizhi.blog.51cto.com/10800691/1791053

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!