建设银行网站百度一下,wordpress去掉title前空格及keywords最后的逗号,英文网站开发公司,百度指数可以查询到哪些内容进程
一、进程创建
1.fork
fork()
//Linux创建子进程的系统调用#xff0c;允许创建多个子进程#xff0c;使用循环创建多个子进程#xff1b;
//需要注意的是#xff0c;创建出来的进程与父进程在调度是由调度器决定的#xff0c;并没有严格的先后顺序#xff1b;二、…进程
一、进程创建
1.fork
fork()
//Linux创建子进程的系统调用允许创建多个子进程使用循环创建多个子进程
//需要注意的是创建出来的进程与父进程在调度是由调度器决定的并没有严格的先后顺序二、进程终止
进程终止有三种情况分别是1.运行完成结果正确2.运行完成结果错误3.出现异常程序终止
进程终止之后会先处于僵尸态等待父进程回收即父进程可以知道子进程的终止信息
2.1进程正常终止结果正常
对于程序正常退出时会返回退出码0
echo $?
#可以查看最近一次进程退出的退出码退出码可以使用return 数字返回也可以使用exit(数字)返回exit(n)是库函数底层都会去调用系统调用_exit(n)2.2程序正常终止结果错误
c语言根据不同的错误设置了错误码表根据不同的错误码对比错误表来查找信息进程的退出码其实指的就是错误码父进程可以接收子进程终止信息
2.3程序异常终止
当程序发生重大错误是就会异常终止本质上就是子进程向父进程发送了信号。
三、进程等待
父进程会对僵尸进程进行等待获取退出信息后子进程才能被操作系统释放。
进程等待一方面是为了防止僵尸进程导致的内存泄漏另一方面提供了一种方式可以直到子进程的运行情况
wait(int status)
#等待任意子进程status输出型参数获取子进程退出状态。status的构成是低16位起作用低七位标识终止信号第八位为核心转储次八位为退出码查看退出码使用(status8)0xFF查看异常状态使用status0x7F获取。也可以使用宏来接收WIFEXITED表示是否异常WEXITSTATUS表示退出码。如果不接收时传入空指针
waitpid(pid_t id, int* status,int options)
#id-1表示等待任意进程具体其他id表示接收pid为id的进程options表示父进程的等待方式0表示默认阻塞等待使用WNOHANG表示非阻塞等待使用非阻塞轮询可以让父进程与子进程并发完成任务
#对于返回值如果大于0则等待成功0则还未就绪常在非阻塞轮询中使用0等待失败即等待的不是id子进程四、程序替换
使用exec*系列函数可以实现进程的程序替换到注意的是程序替换后就不会执行原本的代码
4.1程序替换原理
原理就是哪一个进程执行了该函数就将哪一个进程的代码和数据完全替换即将内存空间替换不会创建新的进程如果与其他进程指向同一个进程地址空间就进行写时拷贝
4.2exec*系列函数
一共有7个函数如下是库函数execve是系统调用这些函数起到加载器的作用将可执行程序载入到内存当中 五、脚本语言编写
# #!(shebang)解释器
# 如下是解释器的相关指令bash命令行解释器就是一个可执行程序以.sh结尾