当前位置: 首页 > news >正文

网站建设推广优化公司中国海外旅游营销网站

网站建设推广优化公司,中国海外旅游营销网站,汝南企业网站建设,网站设置手机版目录 前言#xff1a; 一、进程创建#xff1a; 1、fork函数 2、创建多个进程#xff1a; 3、写时拷贝#xff1a; 二、进程终止#xff1a; 进程退出码#xff1a; 退出方式#xff1a; ​编辑 进程异常退出#xff1a; 缓冲区#xff1a; 前言#xff1…目录 前言 一、进程创建 1、fork函数 2、创建多个进程 3、写时拷贝 二、进程终止 进程退出码 退出方式 ​编辑 进程异常退出 缓冲区 前言 在将进程创建之后还要对其进行合理的管理使用进程控制相关的知识对进程进行管理就能够解决很多其他问题 一、进程创建 1、fork函数 fork函数就是在当前进程中创造一个新进程这个新进程就是当前进程的子进程当前进程就是新进程的父进程子进程的代码和数据就是剩余父进程的代码和数据 返回值 这个返回值的类型是pid_t这个是typedef int使用与进程的fork函数会有两个返回值 创建成功子进程返回0父进程返回子进程的pid 创建失败返回-1 为什么要给子进程返回0父进程返回子进程的pid 这样有两个返回值是为了区分子进程和父进程我们不妨想想为什么要有子进程和父进程呢这样的原因主要是为了让子进程执行和父进程不一样的代码块所以就需要不同的返回值来区分子进程和父进程。 这样就可以用if 、else if、 else进行分流操作来完成子进程完成和父进程不一样的操作 并且一个子进程是只有一个父进程的一个父进程可能有许多子进程所以就需要给子进程一个返回0来标记给父进程返回子进程的PID来管理子进程。 还有其他几个问题在下面文章中所写了如 1、fork函数究竟干了什么 2、一个函数是如何做到返回两次的这怎么理解 3、同一个变量怎么会有不同的内容如何理解 【Linux】进程概念与PCB父子进程与foke函数-CSDN博客https://blog.csdn.net/2303_80828380/article/details/143607556?spm1001.2014.3001.5501 2、创建多个进程 如上代码就是使用for循环创建多个进程最后的sleep1000是不让父进程结束如果父进程结束了就会使子进程变成孤儿进程然后在调用函数child里面打印子进程的pid和ppid进行观察 如上左边就是每次子进程的调用可以看到子进程的调用是毫无规律的也就是说在多进程的调用中哪一个进程被调用是不知道的这是由调度器决定的看调度器把哪一个进程先放入调度队列中谁就先进行调度 3、写时拷贝 写时拷贝实际上是通过页表的方式对不同的进程进行空间寻址达到出现改写行为时父子进程指向的数据就会不同的机制 当进行写时拷贝前 当进行写时拷贝后 如上无论是父进程还是子进程进行数据的修改都会进行写时拷贝就会在物理空间中开辟一块新空间然后就会重新映射物理地址到新开辟的空间这就是写时拷贝原理 二、进程终止 如果进程终止的话那么就必然是下述的三种情况 代码运行完毕结果正确 代码运行完毕结果不正确 代码异常终止进程崩溃 进程退出码 在命令行解释器中可以用 echo   $?来进行查看上一个进程的退出码 当我们的代码运行起来就变成了进程当进程结束后main函数的返回值实际上就是该进程的进程退出码这个退出码对应着相应的退出信息所谓的退出信息就是以退出码的形式作为main函数的返回值返回这样就能够知道是因为 什么而导致进程崩溃一般main函数的退出码是0的话就是正常运行结束如果不是0的话就是异常退出 这样echo看到的就是正常结束 strerror函数可以通过打印出退出码对应的信息这个函数在string文件中 在Linux中有133个退出码不同环境下退出码的个数和对应的含义也可能会不同 如下当进程中被热键ctrl c终止后对应的退出码就是130在上面看到就是 自我退出 的 如上如果在进行echo $?的话就是看的echo这个进程的退出码了所以看一个指令的退出码一般都是0 我们也可以模拟实现一个错误码 这样的话也可以实现错误码数组下标对应的错误信息了 退出方式 1、return退出 一般return退出就是退出当前函数到上一级 2、热键退出ctrlc 如果是热键退出的话就属于外部退出这样退出的话在Linux中就属于130号退出码 返回码137通常表示命令或进程被强制终止具体原因包括以下几种‌命令被另一个程序或脚本通过发送SIGKILL信号终止‌在Linux系统中SIGKILL信号值为9是一个强制终止进程的信号‌ 3、exit与_exit 这两个退出函数本质上来说没有区别都是退出进程但是exit()是对_exit()做的封装实现推荐一般使用exit毕竟这个函数还会多做一点事比如冲刷缓冲区等等 看看如下代码 运行结果是如下的 原因exit是终止进程的当执行完exit之后就会结束这个进程就不会继续往下进行了 _exit与exit区别 当执行如下的代码的时候就会刷新缓冲区这样的话就可以看见所打印的内容了 同样的代码当是 _exit 的时候就看不到所打印的内容 原因 exit()是对_exit()做的封装实现 _exit()就只是单纯的退出程序 而exit()在退出之前还会做一些事比如冲刷缓冲区再调用 _exit() 进程异常退出 当进程异常退出的时候再看退出码就没有意义了 在Linux中进程异常退出可能有以下几种情况 接收到信号导致的异常退出常见的信号如kill -9 热键ctrl c 资源耗尽例如CPU时间、内存等资源用尽 程序代码错误例如数组越界、无效指针引用等 系统调用错误进程执行了非法的系统调用 缓冲区 由于_exit函数是一个系统调用直接由操作系统内核提供所以如果缓冲区也在内核中的话那么在_exit结束进程的时候就可以刷新缓冲区了但是_exit却不能够刷新缓冲区所以缓冲区不在内核中
http://www.w-s-a.com/news/931124/

相关文章:

  • 网站计费系统怎么做九一制作网站
  • 网红营销推广温州seo博客
  • 临沂网站制作定制现在比较流行的软件开发模型
  • 南宁企业建站系统做问卷调查哪个网站好
  • 能打开各种网站的浏览器推荐建设部的网站首页
  • 苏州高端网站建设开发wordpress 删除图片
  • saas网站开发外贸网站设计风格
  • c 手机网站开发湘阴网页定制
  • 阿里云虚拟主机搭建wordpressWordPress优化手机端
  • 湖北长安建设网站衡阳市做网站
  • 灯饰网站建设图片深圳做网站哪家公司好
  • 网站的构造有什么网站做生鲜配送的
  • 怎么在手机上做微电影网站小马厂网站建设
  • 网络广告投放网站中山网
  • 保定网站制作专业网页设计模板html代码运行
  • 中国专利申请网官网杭州seo优化
  • 杭州低价做网站网站系统功能流程图
  • 档案室建设网站名贵中药材初加工平台
  • 怎么做优惠券的网站wordpress加载速度
  • 手机网站 分辨率如何创建网站挣钱
  • 网站建设工作标准做模版网站
  • 免费注册微信网站怎样做天猫网站视频
  • 青海建设厅网站通知wordpress如何改文章id
  • 国外搜索网站建设支付网站备案
  • 合肥建站公司有哪家招聘的拼车平台网站开发
  • 网站 备案 固话北京建站模板企业
  • 网站开发的公司wordpress分类目录 模版
  • flashfxp怎么上传对应网站空间wordpress无法创建
  • 建设网站案例分析做网站代理怎么赚钱
  • 唯品会网站建设特色域名备案期间 网站访问