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

一、

下面的代码是对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)

时间: 2024-08-19 11:16:14

linux学习笔记 (fork && FILE && PC)的相关文章

linux学习笔记(一)-文件目录相关的命令&&文件通配符

一.几个命令概述 1.查看目录以及目录底下的文件:ls(-a显示隐藏文件:-d显示目录本身:-l显示详细内容:-R递归显示,即把子目录的文件也显示出来:-h以更加被人类理解的格式显示,比如显示文件大小的时候用M为单位显示:-i显示文件索引ID) 2.查看文件内容:cat,head,tail,less,more,tac cat:将文件连接起来,输出在屏幕上,可接多个文件(-E:显示隐藏的换行符:-n:显示出行号) head:默认查看文件的前10行(-n#:查看文件的前#行.空白行也是一行) tai

Linux学习笔记四:Linux的文件搜索命令

1.文件搜索命令  which 语法:which [命令名称] 范例:$which ls  列出ls命令所在目录 [[email protected] ~]$ which ls alias ls='ls --color=auto' /bin/ls 另外一个命令:whereis [名称名称],也可以列出命令所在目录. [[email protected] ~]$ whereis ls ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/ma

Linux学习笔记——如何使用echo指令向文件写入内容

0.前言 本文总结如何使用echo命令向文件中写入内容,例如使用echo指令覆盖文件内容,使用echo指令向文件追加内容,使用echo指令往文件中追加制表符. echo向文件中输出内容的基本方法是使用IO重定向指令--">",默认情况下echo输出到标准输出中,使用>指令可重定向输出到文件中. 1.echo指令基本用法 [1]Linux官方用户手册--echo指令 [2]输入指令获得帮助 sudo echo --help 返回内容如下 用法:echo [短选项]... [字

linux学习笔记-type命令

语法: type [-tpa] name 参数: type:    不加任何参数时,type会显示出name是外部命令还是内部bash内置命令 -t:      当加入-t参数时,type会将name以下面这些字眼显示出它的意义 file:表示为外部命令 alias:表示该命令为命令别名所设置的名称 builtin:表示该命令为bash内置的命令功能 -p:     如果后面接的name为外部命令时,才显示完整文件名 -a:     会有path变量定义的路径中,将所有含有name的命令都列出来

Linux学习笔记033_11进程

ps:(process information,静态的) 显示进程信息,不加参数显示当前终端的进程 a:包括所有终端的进程 x:不属于任何终端的进程,和任何用户无关系的进程 u:显示出进程的拥有人 f:显示进程的附属关系(依赖关系,父子进程) USER:进程的拥有人 PID:进程ID,默认用进程ID排序 VSZ:程序在运行时调用多少虚拟内存 RSS:真实内存 TTY:?不属于任何终端,进入终端之前就运行 STAT:状态,s为睡眠 TIME:进程持续时间 COMMAND:运行这个进程的指令 ps

Linux学习笔记——虚拟机中安装VMware Tools

0 前言 VMware Tools是VMware虚拟机中自带的一种增强工具,只有在VMware虚拟机中安装好了VMware Tools,才能实现主机与虚拟机之间的文件共享,实现文件在虚拟机之间的复制粘贴. 最近购买了周立功的一款EasyARM开发板,作为树莓派Linux学习的补充.在虚拟机中安装了周立功提供的ubuntu镜像,总觉得在主机和PC机之间直接复制粘贴才爽,所以又安装了Vmware Tools.     [相关博文] [ Linux学习笔记--vmware plarer中安装ubunt

Linux学习笔记--vi

在Linux上使用vi命令修改一个文件内容的时候,发现无法保存,每次写完使用“:q!”命令可以正常退出但是使用":wq!"命令保存文件并退出时出现一下信息提示: E212: Can't open file for writing Press ENTER or type command to continue 出现这个错误的原因可能有两个: 1.当前用户的权限不足 2.此文件可能正被其他程序或用户使用. 一般错误原因都是前者,解决方案是在使用vi命令打开文件时,前面加上sudo来临时提供

Linux学习笔记:Nagios的配置

安装方法请参考 Linux学习笔记:Nagios的安装 客户端 由于我的安装是使用xinetd这个daemon的,所以需要调整相关的配置文件 [[email protected] ~]# vi /etc/xinetd.d/nrpe  service nrpe {         flags           = IPv4         socket_type     = stream         port            = 5666         wait           

嵌入式Linux学习笔记之LED驱动

最近在学习嵌入式Linux驱动开发,大致了解了驱动的基本开发流程,本文主要针对字符设备驱动开发做一个简要介绍,也当作是对这几天工作的一个小小总结. 计算机系统是由软硬件相互协调共同完成工作的,作为专用计算机系统的嵌入式系统也不例外,既要有CPU.SDRAM.FLASH.IO等硬件,同时也少不了操作系统和应用软件等软件的支持,而作为应用程序与硬件的桥梁--驱动程序,是整个嵌入式系统开发过程中的关键环节.驱动开发涉及底层,而了解底层作用机制对于整个系统的开发意义重大. Linux内核中有60%以上是