- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我使用 Eclipse for C/C++ Developers version 来编写必须通过发送信号 SIGINT 来响应 Ctrl+C 单击的代码。但是,当我从控制台运行我的代码时,我发现它根本不响应 Ctrl+C。我禁用了 Ctrl+C 作为复制键映射的功能,但它仍然没有解决问题。你知道我能做些什么来解决它吗?
代码示例:
#include <sys/types.h>
#include <sys/wait.h>
#include <stdio.h>
static void sig_int(int num) {
printf("\nerror\n");
}
int main (int argc, char *argv[]) { //7
sigset_t zeromask;
if (signal(SIGINT, sig_int) == SIG_ERR)
fprintf(stderr,"signal(SIGINT) error");
printf("Hello\n");
if (sigsuspend(&zeromask) != -1)
fprintf(stderr,"sigsuspend error");
}
如果您从 Linux 终端运行此代码,当您单击“Ctrl+C”时,您将获得“错误”输出。但是,如果您从 Eclipse 控制台运行它,则什么也不会发生。 Eclipse 控制台不会将 Ctrl+C 视为键盘中断。
最佳答案
原因是 gdb 正在捕获 SIGINT 信号而不是将其传递。
如果您转到 gdb 控制台(带有 gdb 版本的控制台;而不是标有“traces”的控制台)并输入“信息信号”,您将看到如下列表:
info signals
Signal Stop Print Pass to program Description
SIGHUP Yes Yes Yes Hangup
SIGINT Yes Yes No Interrupt
SIGQUIT Yes Yes Yes Quit
SIGILL Yes Yes Yes Illegal instruction
请注意,SIGINT 的通行证设置为否。
输入:处理SIGINT通行证
SIGINT 也被 gdb 使用,因此它可能会询问您是否真的确定。
编辑:
当我从 Eclipse 尝试一个简单的程序时,程序在暂停之前不会收到 SIGINT。这可能是 Eclipse 的问题。当直接从 gdb 运行时,程序按预期工作。
关于c - 面向 C/C++ 开发人员的 Eclipse 和 Ctrl+C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36797967/
是否有用于手动测试的代码覆盖工具?比如我新写了30行代码,编译,然后运行,有什么办法可以快速验证这30行都运行了吗? 另外,后来,在我将代码 checkin 正式版本后,有什么方法可以验证测试部门在进
老实说,这是一个家庭作业问题,但我已经浪费了好几个小时,而且无法正确解决。它返回错误数量的结果或错误的数据: 我需要选择参与指导电影和/或在电影中表演的每个人以及他们所做的次数,如果至少 5 次。 有
我正在尝试测试 MacOS 的应用内购买。输入测试用户凭据后,App Store 提示:“当前收据无效或 ds 人员 ID 不匹配。”并且购买失败。 最佳答案 我尝试了很多方法来解决这个问题。 Get
我正在为 Jenkins 使用 ActiveDirectory 插件,因此用户必须使用他们的凭据登录到 Jenkins。然后用户在 Jenkins 中被称为 joe.doe,这很完美。 当同一个人 c
如何从 Infopath 人员/组选取器检索电子邮件地址?当我将人员/组选取器添加到 infopath 表单时,我只得到 3 个字段 DisplayName、AccountId、AccountType
在 Snow Leopard 中,可以在 iCal 事件中显示空闲/忙碌时间。我搜索了 CalStore.framework 的 header ,但找不到任何描述该字段的属性。如何检索日历事件的忙/闲
是否有人成功地从专门针对 SharePoint 2013 的新建或编辑表单中获取用户(个人或组)字段的值? 我已经尝试了通过搜索互联网找到的所有解决方案以及我自己能想到的所有解决方案,所有结果都为空白
所以我需要将一个 Twitter 帐户添加到 ABRecordRef 中。然而,最快的方法似乎是获取社交资料属性的多值引用,创建它的可变版本,查找它是否有 Twitter 条目,如果已经有,则创建
我正在尝试将使用 Tomcat(最初是 5.5,但可以与 7 一起使用)在 MyEclipse 中开发的应用程序部署到我们的演示服务器 (Sun Java Web Server 7)。不幸的是,所有设
我是一名优秀的程序员,十分优秀!