赞
踩
1 fork 之后 之前 确定的是 相等的进程是父进程
2 fork 会有两个返回值 父进程得到的getpid 是子进程的
子进程得到的是 0
3 当子进程对变量操作时 会发生一个“写时拷贝” 对的是父进程拷贝地址的操作
4 产生一块的地址空间 会有 代码区 堆区 栈区 常量区 静态区 的细分
显示所有程序 和其他用户程序
user :用户
显示以用户为主的 程序
一 显示所有程序 就是不以终端机区分
1 因为终端机也是进程
2 不以终端机区分 就是和他有关无关都可以在显示一起。
123点的总和
显示 ppid pid (父子进程的)
COMMAND:命令
kill : 终止
怎么看 SIGTENRM 的信息呢
kill -l
-l :寻找
实际的排序并没64 个 大概 只有60多
先改改代码
#include<stdio.h> #include<sys/types.h> #include<unistd.h> #include<sys/wait.h> int main() { pid_t a; a=fork(); if(a>0) { while(2)//变为循环 { printf("father pid is %d\n",getpid()); } } else if(a==0) { printf("child pid is %d ppid is %d \n",getpid(),getppid()); } return 0; }
让 父进程不断循环 待会用 kill 指令 验证他的作用
1 先 生 成 可执行文件 ./a.out
2 查看 对应的 pid 序号
ps aux 前面 讲了 gerp :查找
主要讲 | R+ S+ 的意思
| : 是管道的意思 (内核一段缓存)
用户读取数据 管道就是缓存 数据 不断如此,单向读写。
R+ :可执行 状态 (对应二进制文件)
S+ :可中断 状态(c文件)
因为中断函数 和普通函数 区别只不过 多了一个触发条件而已
本质都是一样的。
不明白 看 《上电之后main函数如何被cpu运行的 》
再不懂 往前看完 之前 关于这篇的分步 讲解。
注意 会至少存在两个进程 1 :c文件 2 二进制文件 并且是存在的
如果是这样呢
先看 aaaaaa 存不存在
因为不存在 所以用户没读到
但是 管道 写了 所以显示
kill -9 发送 终止 信号
-9 发送信号 (强制性)
kill -9 18428 终止父进程循环 信号
1 18428:是父进程的pid
2 注意 终止的是对应的 c文件 而不是 二进制文件
因为杀死的c文件 相当于源头没有了 所以就xxx
验证成功
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。