ubuntu中按ctrl+c不是终止程序运行吗,为啥我用ps aux看到,该程序在后台运行了

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ubuntu中按ctrl+c不是终止程序运行吗,为啥我用ps aux看到,该程序在后台运行了相关的知识,希望对你有一定的参考价值。

谁告诉你ctrl+c是终止程序的,ctrl+c是发送某个信号,如果你那个程序对该信号进行其他处理(默认是终止程序)的话就不会终止。 参考技术A 在系统监视器下杀死那个进程。简单有效。 参考技术B 想要终止程序,用kill 参考技术C 不是默认复制的意思吗 参考技术D ps -l | grep 进程名
kill 进程id

如何使用 Ctrl-D 终止程序?

【中文标题】如何使用 Ctrl-D 终止程序?【英文标题】:How to terminate a program with Ctrl-D? 【发布时间】:2010-12-30 14:58:52 【问题描述】:

我正在尝试编写一个模拟计算器的简单程序。我希望程序在 Ctrl+D 击键时退出或关闭。我通过***搜索并看到了 Ctrl+CCtrl+A 的其他示例,但示例在java中和 C.

对于 C:

(scanf("%lf", &var);

对于 java,当按下 Ctrl+Z 时会引发 SIGINT

signal(SIGINT,leave);  
    for(;;) getchar();

我想知道在 C++ 中我可以为 Ctrl+D 做什么...

谢谢大家!

【问题讨论】:

真的需要更多关于这方面的信息,比如你在什么环境下运行。各种 shell 和 GUI 小部件会为自己的目的拦截像这样的特殊控制字符,并且可能有也可能没有办法将其关闭。 【参考方案1】:

Ctrl+D 将导致标准输入文件描述符返回文件结束符。任何输入读取功能都会反映这一点,然后您可以在到达文件结尾时退出程序。顺便说一句,C 示例应该在 C++ 中逐字运行,尽管它可能不是最惯用的 C++。

顺便问一下,这是作业吗?如果是这样,请务必将其标记为这样。

【讨论】:

哦,这很有趣!我会尝试一下。谢谢!这是实验室的一部分,我只是无法让 Ctrl-D 工作,我很沮丧。当事情看起来束手无策时,我决定请教无所不知的精彩 ***。谢谢威尔! 不告诉如何在 c++ 中执行 OP 要求的操作。【参考方案2】:

如果您需要在读取输入时使用 Ctrl-D 终止。

 while ( std::cin ) // Ctrl-D will terminate the loop

  ...

【讨论】:

【参考方案3】:

您可以让生活更轻松,并扫描“退出”或“退出”等关键字。上次我用计算器时,键盘上没有这些字。

许多简单的计算器程序将输入读取为由换行符终止的文本。他们解析内存中的文本,然后吐出答案。

其他更复杂的计算器程序使用窗口并且是事件驱动的。有些人使用“=”之类的按钮来表示输入结束和计算开始(不适用于 RPN 计算器)。

这些技术消除了使用控制字符序列确定文本结尾输入的麻烦,并且更便于移植。

【讨论】:

【参考方案4】:

在 Unix 下,终端会将 Ctrl+D(在空行上)解释为输入的结尾;从stdin 进一步读取将返回EOF,您可以关注。

【讨论】:

记住前两个词:Under Unix。还有其他平台可能(并且可能)在触发输入结束方面有所不同。【参考方案5】:

Ctrl+D 在 Unixy 平台上是 EOF。如果你得到每个字符,你可以检查你是否有 EOF。

【讨论】:

以上是关于ubuntu中按ctrl+c不是终止程序运行吗,为啥我用ps aux看到,该程序在后台运行了的主要内容,如果未能解决你的问题,请参考以下文章

为啥只有在 Windows 控制台程序中按 Ctrl+Z 时才会终止输入? [复制]

linux自动启动程序用ctrl+c无法终止

ubuntu的2运行级别!

带有循环的程序不会用 CTRL + C 终止

13ubuntu终端快捷键(参考 dy9776)

C# 控制台应用程序崩溃