Linux -进程pid_t fork(void); 笔记

创建子进程

 pid_t fork(void);
                父进程返回进程ID,子进程返回0
                附加:
                        错误处理
                       1.若干ifelse
                       2.定义过一个errno,所以的系统调用出错都返回-1
                          然后将错误编号记录到errno中
                           通过strerror得到错误编号对应的描述
获得进程ID:
 
pid_t getpid(void);

获得父进程ID:

 pid_t getppid(void);

fork的注意点:

                  1.fork之后,父/子进程交替运行
                  2.如果父进程死亡,子进程活着,子进程叫做进程。孤儿进程托管给1号进程,1号进程也叫孤儿院。
                 3.如果父进程活着,子进程死亡,子进程就是一个僵尸进程。僵尸进程会占用少量系统资源。僵尸进程是有害的。
                弄死进程的方法:
                                  1.ctrl+c
                                  2.kill pid
                                   kill 不能杀死僵尸进程

进程虚拟成文件  /proc/pid/

进程优先级:(-20~19) 越小优先级越高
 
                 1.nice -n 优先级 程序名
                  2.renice 优先级 -p 程序名
                  3.top shift>/< r pid

写时拷贝:

 没有必要全部都拷贝一份,父进程什么时候修改,什么时候拷贝一份出来。称之为写时拷贝.

pid_t vfork(void); (尽量不使用)
特点:
 1.父进程阻塞,直到子进程运行完毕。
 2.就算写时,也不拷贝
 3.必须使用exit或者exec。
 4.每个系统对vfork的实现或多或少都有问题,不要使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值