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

    xiaoxiao2021-04-14  44

    关于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确实使得程序终止,而不是简单的退出。

    转载请注明原文地址: https://ju.6miu.com/read-669747.html

    最新回复(0)