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

四川高端网站建设全国疫情地区查询最新

四川高端网站建设,全国疫情地区查询最新,泰州网站建设报价,wordpress调用代码本节目录1.进程终止2.exit与_exit函数1.进程终止 进程终止时,操作系统做了什么? 释放进程中申请的相关内核数据结构和对应的数据和代码。本质就是释放系统资源。 进程终止的常见方式 a.代码跑完,结果正确 b.代码跑完,结果不正确…

本节目录

  • 1.进程终止
  • 2.exit与_exit函数

1.进程终止

进程终止时,操作系统做了什么?
释放进程中申请的相关内核数据结构和对应的数据和代码。本质就是释放系统资源。

进程终止的常见方式
a.代码跑完,结果正确
b.代码跑完,结果不正确
c.代码没有跑完,程序崩溃了

main函数的返回值?main函数返回的意义是什么?return 0含义是什么,为什么总是0?
main函数的返回值是此进程的进程退出码;意义:返回给上一级进程,用来评判该进程执行结果用的,可以忽略;并不是总是0,可以是其他数字;0表示success,非0表示允许的结果不正确,非零值有无数个,不同的非零值就可以标识不同的错误原因,给我们的程序在运行结束之后,结果不正确,方便定位错误的原因。

用代码,如何终止一个进程?
return语句,就是终止进程的,return退出码。
exit在代码的任何地方调用,都表示直接终止进程。
return是一种更常见的退出进程方法。执行return n等同于执行exit(n),因为调用main的运行时函数会将main的返
回值当做 exit的参数。

查看一个进程的进程的退出码
echo $? : 获取最近的一个进程,执行完毕的退出码。

[jyf@VM-12-14-centos 进程]$ ./mytest7
Before:pid is 30381
After:pid is 30381,fork return 30382
After:pid is 30382,fork return 0
[jyf@VM-12-14-centos 进程]$ echo $?
0

strerror:根据传入的退出码,得到其退出码的含义

  1 #include <stdio.h>2 #include <string.h>3 4 5 int main()6 {7   int i=0;8   for(i =0;i<133;i++)                                                                                                                                                                                        9   {10     printf("%d:%s\n",i,strerror(i));11   }12   return 0;13 }
~
[jyf@VM-12-14-centos 进程]$ ./mytest9
0:Success
1:Operation not permitted
2:No such file or directory
3:No such process
4:Interrupted system call
5:Input/output error
6:No such device or address
7:Argument list too long
8:Exec format error
9:Bad file descriptor
10:No child processes
11:Resource temporarily unavailable
12:Cannot allocate memory
13:Permission denied
14:Bad address
15:Block device required
16:Device or resource busy
17:File exists
18:Invalid cross-device link
19:No such device
20:Not a directory

我们可以使用这些退出码和含义,当然,如果我们想自己定义,也可以自己设计一套退出方案。

***程序崩溃的时候,退出码无意义!一般而言,退出码对应的return语句,没有被执行。***比如程序内出现数组越界啦,野指针啦等,程序直接崩溃,此时它们的退出码是无效的,没有执行return语句。

2.exit与_exit函数

#include <unistd.h>
void exit(int status);

在这里插入图片描述

     int main(){printf("hello");_exit(0);}
//运行结果为空
//注意:字符串的长度不能太长,否则缓冲区满会自动刷新int main(){printf("hello");exit(0);}
//运行结果为hello

exit函数是语言层面的函数,_exit是系统层面的接口
printf - \n数据是保持在缓冲区的,请问这个缓冲区在哪里,谁维护的?
我们发现这个缓冲区一定不在操作系统内部中,如果在_exit函数应该也能将数据刷新出来,但它不能,exit函数可以,所以,缓冲区是C标准库的,C标准库给我们维护的。

http://www.mmbaike.com/news/95399.html

相关文章:

  • 包装设计是什么网络优化
  • 汽油价格92号最新调整时间深圳seo排名
  • 做旅行攻略的网站好高州新闻 头条 今天
  • 设计logo网站侵权吗知乎最优化方法
  • 建筑公司资质等级分几级沈阳网站seo排名公司
  • 上海做网站高端咨询网络服务商
  • 临沂网站建设网站推广域名收录查询工具
  • 网站建设成本预算sem竞价推广公司
  • 网站建设 东莞seo兼职怎么收费
  • 怎么做网站例如京东优化大师人工服务电话
  • 建站平台和网站建设的区别seo顾问公司
  • 龙口做网站es158seo怎么优化关键词排名培训
  • 马关网站建设网页百度
  • 中和华丰建设有限责任公司网站短视频代运营合作方案
  • 公司网页免费河南自助建站seo公司
  • 怎么判断代运营是真是假seo排名点击工具
  • 如何将百度云做成网站文件服务器网络营销服务的特点有哪些
  • 设计网站考虑哪些因素无锡网站建设方案优化
  • 国外做黄色网站竞价推广代运营
  • 企业网站建设如何去规划优秀的软文广告欣赏
  • ps软件网站有哪些功能近期热点新闻
  • 上海招聘网最新招聘2023seo搜索引擎优化怎么做
  • 网站开发w亿玛酷1订制重要新闻
  • 惠州做网站哪家公司好新闻媒体发布平台
  • 小企业网站建设怎么做好网络推广和竞价怎么做
  • 广州企业网站设计方案长沙seo关键词排名
  • 上海市建设厅网站查询百度seo视频教程
  • 网站建设与网页设计实验报告百度公司在哪
  • 网站免费模板资源网络推广合作协议范本
  • 哪里做网站最好推广赚佣金项目