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

嘉兴哪里做网站WordPress语音朗读插件

嘉兴哪里做网站,WordPress语音朗读插件,网页美工设计实训报告,网站怎么做导航页一、进程的创建 1、知识储备 进程的创建要调用系统接口#xff0c;头文件 #includeunistd.h 函数fork() 由于之前的铺垫我们现在可以更新一个概念 进程 内核数据结构#xff08;task_struct, mm_struct, 页表....#xff09; 代码 数据 所以如何理解进程的独…一、进程的创建 1、知识储备 进程的创建要调用系统接口头文件 #includeunistd.h 函数fork() 由于之前的铺垫我们现在可以更新一个概念 进程 内核数据结构task_struct, mm_struct, 页表.... 代码 数据 所以如何理解进程的独立性呢 就是上述组成进程的结构都是独立的互不影响的。 那为什么 fork() 返回的是子进程的pid呢 是为了让父进程对子进程进行表示和管理。 2、理解fork() 1fork() 常见用法 a、在一个代码中通过 fork() 不同的返回值用 if else分流以达到不同进程执行不同代码的目的。 b、可以让父子进程独立进行完全不同的代码。 2fork() 失败的原因 a、操作系统中进程太多。 b、实际用户创建的进程太多超出规定个数。 二、进程的终止 首先我们要知道进程是先创建内核数据结构再加载代码和数据。 1、终止的表现 会释放代码和数据所占据的空间释放内核数据结构task_struct 会延期释放 2、终止的三种情况 1观察现象 首先我们先观察一个现象 当我们以前在写c语言代码时我们都是 return 0; 结尾当我们今天 return 100; 时用 echo $? 命令获取进程的退出码时就会发现退出码和 return 后面的数字是一样的。 2解释 echo $? echo内建命令打印bash内部变量数据。 $访问变量内容。 父进程bash获取最近一个子进程的退出码。 3退出码 退出码0是成功非0是失败。 每一个非0数都有不同的失败原因。 头文件 #includestring.h    函数 char* strerror(int num) 可以查看退出码。 上图只截了一部分退出码。 退出码的作用就是告诉父进程子进程把任务完成的怎么样。 结论当代码跑完时结果的正确与否是由退出码反馈给用户的。 4退出信号 与退出码不同退出信号是代码还没跑完系统就崩溃了操作系统发现进程做了不该做的事比如访问野指针等等操作系统就会杀死进程。 所以一旦出现异常退出码也就没有意义了但是返回的退出信号是有意义的。 例如Segmentation fault 就是段错误代码段是有错误的。 退出信号的本质操作系统给进程发信号并终止进程。 之前我们说kill -9 可以直接杀死进程也就是这个原因而我们上面提到的段错误 Segmentation fault 就是操作系统发送了 kill -11 信号。 5总结 衡量一个进程的退出只要看退出码和退出信号。 先确认是否异常若不是才看退出码。 所以在子进程的 task_struct 中就会有 exit_code(退出码)  exit_signal(退出信号)在执行完代码后写入退出码和退出信号供父进程读取。 3、如何终止 1main()函数中的 return 代表进程终止普通函数 return 表示函数结束 2调用头文件#includestdlib.h 函数 void exit(int status) status相当于退出码exit等价于return 3调用头文件#includeunistd.h 函数 void _exit(int status)基本与exit函数相同一个是c库函数一个是系统调用。 区别 exit 执行时会冲刷缓冲区但是 _exit不会所以其实这里所说的缓冲区只是c库层面的不是系统调用层面的缓冲区。 exit本质就是底层调用 _exit 三、进程等待 任何子进程在退出的情况下必须要被父进程等待。如果父进程不管子进程就会处于僵尸状态导致内存泄漏。 三、进程的等待 1、为什么父进程要等待子进程 1解决僵尸问题回收系统资源。必须 2获取子进程退出信息知道子进程为什么退出。可选 2、怎么等待 1wait 函数 头文件 #includesys/types.h #includesys/wait.h 函数 pid_t wait(int* status) 等待成功返回子进程的pidwait(NULL)表示父进程等待任意一个子进程退出。 若子进程一直不退出父进程就进入阻塞等待。 阻塞等待的本质把父进程设为非运行状态S链入到子进程队列中子进程退出父进程唤醒。 2waitpid 函数 头文件 #includesys/types.h #includesys/wait.h 函数 pid_t waitpid(pid_t id, int* status, int options) waitpid(-1, NULL, 0)等价于wait(NULL) a、理解参数 id id 表示要等待哪个子进程 所以理解代码 pid_t id fork(); waitpid(id, NULL, 0); 在父进程中fork()返回子进程pid所以就指定了要返回哪个子进程了。 b、理解参数 status status是输出型参数例如 scanf()就是把数值写入到一个变量中输出的是退出信息包括退出码和退出信号 理解额代码 我们知道int有32位bit位status只考虑低16位 获取退出码(status8) 0xFF 获取退出信息status 0x7F c、获取退出码的宏 WIFEXITED(status)     代码正常走完就返回真 WEXITSTATUS(status)    若WIFEXITED为真就提取退出码 3非阻塞等待 上述父进程都是等子进程跑完之后才工作的这种都是阻塞等待调用waitpid默认也是阻塞等待但是我们想让父进程在等待时做其他事情就要让 waitpid 中 option 设成 WNOHANG 此时返回值 0等待失败。 返回值 0检测成功但是子进程未退出等待下一次检测。 返回值 0等待成功并且父进程回收成功。 非阻塞等待 循环 非阻塞轮询 达到父进程能做其他事情。
http://www.dnsts.com.cn/news/79018.html

相关文章:

  • 南昌专业制作网站为什么最近好多网站打不开了
  • 淘宝网站设计价格域名注册后怎么搭建网页
  • 封丘县建站塔山双喜微商城手机网站
  • 门户网站建设多久网站建设考试试题
  • 个人视频网站注册平台4c网络营销策略
  • 杭州文化传媒类高端网站建设公司wordpress主题放到哪里
  • 网站开发项目发展现状实时新闻热点
  • 开发外贸产品的网站徐水区城市建设网站
  • 懂网络维护和网站建设的专业温州首页网络科技有限公司
  • 平面设计是什么专业学的seo黑帽教学网
  • 企业网站模板文件管理wordpress修改最大32m
  • 上海公司黄页网站建设单位发包许可证网站
  • 制作网站的公司办什么营业执照云服务器开网站
  • 赣州网站建设有哪些上海化工网站建设
  • 怎么免费建立网站做推广wordpress类似于mdx主题
  • 优化推广网站单页简洁手机网站模板
  • 房产交易网站开发网页广告拦截
  • 高端网站建设的流程是什么宿州网站建设开发公司
  • 深圳软件公司招聘网站怎么优化
  • 娱乐网站建设怎么样个人网站制作价格表
  • 木屋网站建设西安网络运营公司有哪些
  • 网站建设策划书主要内容做网站一定要正版系统吗
  • 东莞做企业营销型网站的公司维持一个素材网站要多少钱
  • 陕西省安康市建行 网站网页制作中网站名称怎么做
  • 网站统计关键词郑州建设信息网网
  • 网站建设公司杭州18年网站建设与网页设计开题报告
  • 廊坊网站建设方案开发消防证怎么考取需要什么条件
  • 郴州网站制作公司招聘计算机哪个专业最吃香热门专业
  • 怎么样做公司网站网页设计基础实训报告
  • 做导购网站要多少钱做网站的要求