一起talk C栗子吧(第八十一回:C语言实例--进程停止)


各位看官们,大家好,上一回中咱们说的是进程互斥的例子,这一回咱们说的例子是:进程停止。闲话休提,言归正转。让我们一起talk C栗子吧!

我们在前面的章回中介绍了如何创建进程,不过没有介绍停止进程,已经有部分看官在提问了,如何停止进程呢?看官莫急,今天咱们就一起来说说如何停止进程。

停止进程的方法有以下几种

  • 进程正常结束时停止;
  • 使用exit函数停止进程;
  • 强制停止进程;
  • 进程运行过程中发生错误后停止进程。

接下来,我们分别介绍这几咱停止的方法:

进程正常结束时停止

我们写的程序中都有一个main函数,在main函数中使用return语句给系统返回一个数值,这时候拥有main函数的进程就会停止。该方法是最常见的方法,可能是我们见多了,反而觉得很平常。俗话说:物以稀为贵说是就是这个道理。

下面是一个简单的代码结构:

int main()
{
     //do something
     return 0;        //通过返回停止进程
 }

使用exit函数停止进程

在程序中直接调用该函数就可以,传递给它的参数通常是1。表示程序发生异常而停止。比如,我们在函数中经常会判断指针是否为空,如果为空则停止运行程序。

if(NULL == p) 
    exit(1);   //通过exit函数停止进程

强制停止进程

在终端中使用kill命令发送一个信号给进程。例如:

kill 34567

上面的例子表示给PID为34567的进程发送一个TERM信号,该进程收到信号后就会停止。当然了,可以使用kill命令发送其它信号给进程,以便 让进程停止。我们只是在例子中使用了默认的信号。

此外,Linux提供了kill系统调用,当我们想在代码中强制停止某个进程时,可以使用它发送停止信号给某个进程,进而强制停止进程。例如:

kill(34567,SIGKILL)

上面的例子表示停止PID为34567的进程。使用该方法时需要拥有管理员权限,否则没有权限给进程发信号。

进程运行过程中发生错误后停止进程

当在进程运行的过程中发生严重错误时,系统会停止该进程。该方法是系统使用的,我们不能使用,我们要做的就是检查各种可能的异常情况,避免严重错误的发生,比如内存泄漏。

看官们,进程停止的方法是很常见而且容易理解,所以我们就不写代码了。

各位看官,关于进程停止的例子咱们就说到这里。欲知后面还有什么例子,且听下回分解 。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值