关于ctrl+c 和 ctrl+z的区别

关于ctrl+c 和 ctrl+z的区别

昨天和朋友讨论到linux下ctrl+c和ctrl+z哪个是终止程序,哪个是挂起程序的问题。于是自己做了一个小小的测试,用一个简单的hello程序作为测试,其源代码为:


 #include "stdio.h" 
 /********************************************************************************
 *  Description:
 *   Input Args:
 *  Output Args:
 * Return Value:
 ********************************************************************************/
 int main (int argc, char **argv)
 {
     printf("Hello world!\n");
     while(1)
     {
     }
     return 0;
 } /* ----- End of main() ----- */

从源码中可以看出,程序打印完”Hello world!”之后遍会进入到while死循环,直到用户主动终止程序。

于是编译之后我执行该程序,用ps命令可以看到有一个进程号为3049的名为./hello的进程。
这里写图片描述

这里写图片描述

然后我使用ctrl+z命令退出程序
这里写图片描述

ctrl+z退出程序之后再次使用ps命令查看进程,发现进程号为3049的./hello进程依然存在。所以证明ctrl+z只是将程序挂起,并没有真正的退出。
这里写图片描述

我再次执行hello程序,再次查看进程,发现多了一个进程号为3079的./hello进程。
这里写图片描述

这里写图片描述

刚刚使用的是ctrl+z退出程序,发现程序并没有真正的退出,进程中依然存在它 身影。那么现在我使用ctrl+c退出程序。
这里写图片描述

ctrl+c退出之后再次查看进程,发现第二次创建的进程号为3079的./hello进程没有了,说明ctrl+c确实使得程序终止,而不是简单的退出。
这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值