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

网站怎么做免费搜索引擎实训心得体会

网站怎么做免费,搜索引擎实训心得体会,我想做一个网站怎么做的,农家乐网站规划与建设方案一、进程终止 main函数的返回值也叫做进程的退出码,一般0表示成功,非零表示失败。我们也可以用不同的数字来表示不同失败的原因。 echo $?//打印最近一次进程执行的退出码 而作为程序猿,我们更需要知道的是错误码所代表的错误信息&#x…

一、进程终止

main函数的返回值也叫做进程的退出码,一般0表示成功,非零表示失败。我们也可以用不同的数字来表示不同失败的原因。

echo $?//打印最近一次进程执行的退出码

而作为程序猿,我们更需要知道的是错误码所代表的错误信息,转化方法有以下两种:

1.使用语言和系统自带的方法进行转化

2.自定义

 strerror

799efac7f53b4087b58c77a73a77e7dc.png

 0cfee89e9f1648229f913b1a2842c84c.png

 5bfc2a2746494beb937180042b51241e.png

 所以进程代码执行情况大致可以分为正确、不正确、或者代码没有执行完,进程出异常了。

所以我们判断进程最终的执行结果先要判断它是否出异常没有执行完,然后才能判断是否退出的结果正确与否。

 进程退出是收到了异常信号。

7fa35a4cf8f44b80883cdb6ebd3a00df.png

不同的信号编号表明进程异常的原因。

任何进程最终的执行情况,我们可以使用两个数字表明具体的执行情况。

81c1ffc0f6c4444593b8985e1d36aaa6.png

第一种情况就表明没有异常结果正确

第二种第四种都表示进程出异常

第三种表示退出结果不正确。

exit

我们也可以通过exit直接终止进程,status表示退出码。

f8a9e35f5ad64783b821f4f8e6a8c932.png

在我们进程中,任意地方调用都可以实现进程退出。

5e7db97d4de94b60b9e9bd219ab6575a.png

_exit和exit的区别就是exit支持刷新缓冲区,_exit不支持。而终止进程是只有操作系统才可以办到的事情,exit作为库函数内部是封装了系统调用_exit 。而例如scanf和printf也是如此,内部都封装了系统调用。经过封装后,语言的可移植性和跨平台性都可以得到提升。

exit最后也会调用_ exit, 但在调用_exit之前,还做了其他工作:
1. 执行用户通过 atexit或on_exit定义的清理函数。
2. 关闭所有打开的流,所有的缓存数据均被写入
3. 调用_exit

8b7fb67b53e7469386d7c5e399c1163e.png

二、进程等待

2.1进程等待的必要性

之前讲过,子进程退出,父进程如果不管不顾,就可能造成‘僵尸进程’的问题,进而造成内存漏。
另外,进程一旦变成僵尸状态,那就刀枪不入,“杀人不眨眼”的kill -9 也无能为力,因为谁也没有办法杀死一个已经死去的进程。
最后,父进程派给子进程的任务完成的如何,我们需要知道。如,子进程运行完成,结果对还是不对,或者是否正常退出。
所以为什么要进行进程等待?
1.获取子进程的退出码和异常信息(即退出信息)。
2.父进程通过进程等待的方式,回收子进程资源,获取子进程退出信息。
6d90748c9f3e452eb57654f7dcc998dd.png

2.2进程等待的方法

wait方法

#include<sys/types.h>
#include<sys/wait.h>
pid_t wait(int*status);
返回值:成功返回被等待进程pid,失败返回-1。
参数:输出型参数,获取子进程退出状态,不关心则可以设置成为NULL

 wait在等待时默认进行阻塞等待。

任意等待一个子进程。

在进程中父进程要进行最后退出,因为它需要进行代码回收。

waitpid 方法
pid_ t waitpid(pid_t pid, int *status, int options);
返回值:当正常返回的时候waitpid返回收集到的子进程的进程ID;如果设置了选项WNOHANG,而调用中waitpid发现没有已退出的子进程可收集,则返回0;如果调用中出错,则返回-1,这时errno会被设置成相应的值以指示错误所在;
参数:pid:Pid=-1,等待任一个子进程。与wait等效。Pid>0.等待其进程ID与pid相等的子进程。status:WIFEXITED(status): 若为正常终止子进程返回的状态,则为真。(查看进程是否是正常退出)WEXITSTATUS(status): 若WIFEXITED非零,提取子进程退出码。(查看进程的退出码)options:WNOHANG: 若pid指定的子进程没有结束,则waitpid()函数返回0,不予以等待。若正常结束,则返回该子进
程的ID。

fb0b35e9a6cb4236854e6e2da30a1ba1.png

49e58f5223654c47b6e406ca79e75b4b.png 79968f1ec4194410adb9c35393f26a08.png

可经过编译后才发现最后status是256而不是1.

这是因为status并不是一个单纯的四字节整数,因为status中需要存放两个数字:1.退出码2、退出信号,所以status有自己的格式。我们只考虑它的低16位。

a91650d5294d44119e6cc95f4f492157.png

1e86ee141a5f4ba393fe6b00b877bf06.png

 任何进程的最终执行情况,我们可以使用两个数字表明具体执行的情况

而刚刚的写法导致最终status中存储如下图的内容即256

8348f88270e34f71b3b000353782f264.png

3.3wait_pid的非阻塞等待方式

 ded5007283814f16aeb9004ab76b235f.png

依旧是上文中的代码,父进程除了进行阻塞等待,还可以进行非阻塞等待

af0d71e6b23e4f16a6c29dffb1cad84d.png

而非阻塞状态下,需要去反复查询子进程状态,是一种基于非阻塞的轮询访问。优点是在当调用wait_pid去轮询期间,父进程可以去继续执行其他代码,而不是一直处于阻塞状态去等待。

根据上图代码和wait_pid的用法,可以将父进程部分代码改为非阻塞状态的写法。

f31b771ed8af416cb595a1b5b631728d.png

71beb8e982814ad08bec9e45f99af4e4.png

http://www.dinnco.com/news/61115.html

相关文章:

  • 泰州专一做淘宝网站专门做推广的软文
  • 手机端网站开发视频教程如何制作微信小程序
  • 阿里云是做网站的吗建网站需要哪些步骤
  • 做视频写真网站犯法吗搜索引擎优化方案案例
  • 完善幼儿园网站建设代运营公司排名
  • 动漫设计培训机构排名在线网站seo诊断
  • 服务器可以做网站吗市场推广渠道有哪些
  • 个人网站建设软件成都网络推广外包公司哪家好
  • 网站开发和系统开发区别app推广引流
  • 做网站竞价是什么意思seo点击工具帮你火21星热情
  • 网站收录引擎关键词快速排名不限行业
  • 浙江网站制作引流人脉推广软件
  • 这几年做啥网站致富网页优化建议
  • 衡阳网站开发培训此网站三天换一次域名
  • 建设项目网站备案优化官网咨询
  • wordpress评论可见内容seo和sem分别是什么
  • 网站被挟持怎么办生活中的网络营销有哪些
  • 专利减缓在哪个网站上做东莞疫情最新消息
  • 网站推广用什么方法最好营销网站建设推广
  • 为公司做网站要做什么准备迈步者seo
  • 手机端企业网站怎么做竞价排名名词解释
  • dz做电影网站郑州网站seo外包公司
  • 示范高校建设网站百度图片识别在线识图
  • 建设网站wbs十大外贸电商平台
  • 做投资理财网站百度人工客服24小时
  • 网站地图 格式百度竞价托管费用
  • 怎么做网站的ico基础建站如何提升和优化
  • 做网站切图软件北京百度网站排名优化
  • 凤翔网站建设图片识别 在线百度识图
  • 制作一个自适应网站源码如何做好网络营销工作