UNIX环境高级编程:进程管理和通信
三种情况: 没有子进程或子进程都退出,立即返回-1 没有任何子进程结束,父进程会阻塞,直到有子进程退出。哪个先结束先回收哪个 有子进程结束,回收返回 wait/waitpid: waitpid(-1, NULL, 0) == wait(NULL) 最低字节的含义:0表示正常结束;非0表示被信号结束,值为信号的类型 第二字节:正常结束:子进程的返回值;非正常结束:值为0 应用:用父子进程实现文件的复制,每个进程各拷贝一份。 需注意:没打开一个文件,内核空间创建一个struct file结构体,里面有个成员叫f_ops。 ./multi_copy <src_file> <dst_file> 步骤如下: 检查参数的个数 打开源文件、目标文件(注意打开方式和权限) 创建子进程 子进程中:关源、目标文件, 重新打开后复制后半部分 父进程中:复制前半部分 linux守护进程(Daemon进程) 守护进程:是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。 守护进程的特点: 是后台服务进程,生存期较长的进程,通常独立于控制终端,周期性的执行某种任务或等待处理某些发生的事件。 系统启动时开始运行,在系统关闭时终止 进程查看 ps –axj 父进程ID : PPID 进程ID : PID(标识进程的唯一描述符) 进程组ID : PGID 会话期ID : SID 终端ID : TTY 终端进程组ID : TPGID 状态 : STAT 用户 : UID 运行时间 : TIME 指令: COMMAND 守护进程的创建: fork ()创建子进程,父进程退出。 (编辑:云计算网_泰州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |