问题标签 [signals]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
10048 浏览

sockets - 我应该如何关闭信号处理程序中的套接字?

我正在编写一个非常简单的服务器,它会永远循环,直到按下 Ctrl-C。我想让 ctrl-c 的信号处理程序关闭打开的套接字并关闭服务器,但我不知道信号处理程序的范围是什么,我不喜欢声明套接字的想法(s) 我需要关闭才能成为全球性的。

有人可以提供建议吗?有没有一些标准的方法来做到这一点?

0 投票
11 回答
4884 浏览

unix - Unix 中的信号是什么?

这个评论让我感到困惑:“kill -l 通常列出所有信号”。我认为信号意味着量化的能量。

[已添加]请澄清 Unix 中的(计算)信号和物理信号。它们是完全不同的概念吗?

[添加]范式之间是否存在重大差异?在 C、Python 和 Haskell 等语言中的含义是否相同?信号似乎是一个通用术语。

0 投票
6 回答
32845 浏览

c++ - 使用 SIGINT

根据这个http://www.cplusplus.com/reference/clibrary/csignal/signal.html

SIGINT通常由用户使用/引起。我如何SIGINT在 c++ 中导致 a ?我看到了一个使用示例,kill(pid, SIGINT);但我宁愿以另一种方式引起它。我也在使用窗户。

0 投票
3 回答
5750 浏览

c++ - 当用户杀死进程时发出信号?

我重载了本网站http://www.cplusplus.com/reference/clibrary/csignal/signal.html上列出的 6 个信号

然后我运行我的应用程序(双击未通过 IDE 运行)并尝试 1)结束任务 2)右上角的 X 和 3)终止进程。我预计前两个会引起某种信号(我在 XP 上),但可惜我什么也没得到。当信号发生时,我是否不允许打开要写入的文件?我猜我是(SIGSEGV 允许我)。

当 Firefox 崩溃或我杀死它时,它会记住我是什么页面。每次我点击一个页面时它都会记录地址还是在信号/崩溃时这样做?

我的主要问题是我可以使用什么信号来捕获终止进程

0 投票
3 回答
1701 浏览

c++ - 更自然的 boost::bind 替代方案?

不要误会我的意思:Boostbind()很棒。

但是我确实讨厌用它来编写和阅读代码,而且我已经放弃了希望我的同事们会摸索/使用它的希望。

我最终得到这样的代码:

这虽然合乎逻辑,但与我所说的好代码相去甚远。

为了演示......在 C++1x 中,我们将拥有:

一个好的 DSL 可能看起来像这样:

你如何处理 C++ 中的绑定?你只是生活在什么提升给你?

0 投票
4 回答
1466 浏览

perl - 包装脚本应该将哪些信号传递给子程序?

如果我有一个脚本是另一个程序的包装器(例如,守护程序包装器mathematica 的包装器),有时在包装器程序中捕获信号并将它们传递给子程序很有用。例如,这里有一些处理 INT(中断)信号的 Perl 代码,因此如果您在启动包装器后执行 ctrl-C,子程序也会被中断:

在程序可能处理的[所有可能的信号]( http://en.wikipedia.org/wiki/Signal_(computing)中,包装器脚本应该传递哪些信号?
还有什么好的包装器应该做的吗?

编辑:最初这个问题是询问如何传递所有可能的信号。感谢最初的答案,我了解到这不是正确的问题。

编辑:我想出了是什么让我在这里循环。Mathematica 显然脱离了它的父进程。所以我必须明确地传递各种终止信号:

通常这不是必需的,因为子进程会自动传递这些信号(感谢让我直截了当的答案!)。所以现在我想知道为什么(以及如何)mathematica 脱离自身......

0 投票
1 回答
387 浏览

exec - unix 中 exec 系列的任何函数都不会忽略 SIGINT 吗?

是否可以启动一个进程exec并让该进程在后台运行,并且(不像System()),kill一旦将中断信号传递给创建它的父进程,该进程是否会被编辑?

0 投票
2 回答
4211 浏览

select - 使用 select() 时无法捕获 SIGINT 信号

我已经为 SIGINT 定义了我自己的信号处理程序。但是我的信号处理程序没有被调用信号处理程序只是终止程序。但是在按 ctrl+c 时,程序并没有退出。请帮忙...

这就是代码的样子..

0 投票
1 回答
7658 浏览

c - 在 C 中以毫秒为单位设置警报

我目前有一些使用 sigaction 将处理程序与 SIGALRM 信号相关联的 C 代码。然后我做警报(TIME_OUT_IN_SECONDS)。问题是,我需要毫秒,而不是秒,并且警报需要一个整数。如何设置信号以毫秒为单位触发?

0 投票
2 回答
3369 浏览

c - 忽略 ctrl-c

我正在尝试编写一个 shell,而我正处于我想忽略的地步CtrlC

我目前有我的程序忽略 SIGINT 并在信号到来时打印一个新行,但我怎样才能防止^C被打印?

按下 时CtrlC,我得到的是:

但我想要:

这是我的相关代码CtrlC