sigint

    2热度

    2回答

    我正在编写简单c壳体的代码。它存储最后10条命令的历史记录。如果输入'r'作为命令,那么它应该从历史记录运行最近的命令。此外,如果输入'r x',其中'x'是要从历史记录执行的命令的第一个字母,那么它将运行以该字母开头的最新命令。 我遇到了从历史记录复制到inputBuffer的问题;当我尝试去做时会出现分段错误。 这里是代码(这是凌乱的我一直在尝试很多不同的事情,希望修复它)。 任何意见将不胜感

    4热度

    3回答

    我有一个需要很长时间才能完成的程序。我想要 它能够捕捉到SIGINT(ctrl-c)并且调用self.save_work()方法。 既然这样,我signal_hander()不会因为 self不是由程序到达signal_handler()时间定义的工作。 我该如何设置它,以便self.save_work在SIGINT之后被调用? #!/usr/bin/env python import sign

    2热度

    2回答

    我正在尝试编写一个shell并且我处于我想忽略的位置CtrlC。 我目前有我的程序忽略SIGINT并在信号出现时打印新行,但是如何防止^C被打印? 按Ctrl键Ç当,这里是我得到: myshell>^C myshell>^C myshell>^C ,但我想: myshell> myshell> myshell> 下面是有关按CtrlÇ我的代码: extern "C" void di

    3热度

    1回答

    我写了这个简单的程序: void sig_ha(int signum) { cout<<"received SIGINT\n"; } int main() { string name; struct sigaction newact, old; newact.sa_handler = sig_ha; sigemptyset(&newact.sa_mask); newact.s

    13热度

    4回答

    我有一个程序运行在远程计算机上,希望从父接收到SIGINT。该程序需要接收该信号才能正常工作。不幸的是,如果我通过SSH远程运行该进程并发送SIGINT,则ssh进程本身会陷入并中断而不是转发信号。 下面是使用GDB此行为的示例: 本地运行: $ gdb GNU gdb 6.3.50-20050815 (Apple version gdb-1344) (Fri Jul 3 01:19:56

    4热度

    1回答

    我有一个多线程的程序,并使用signal.signal(SIGINT,FUNC)当按下CTRL C杀掉所有线程。我的问题是这样的: 我要打电话从主signal.signal(...)的巨蟒。我是否必须在循环中调用该函数,或者我可以将其设置为一次,只要用户按下ctrl c,信号就会被捕获?

    3热度

    1回答

    我试图终止OpenVPN的任务,通过NSTask催生发送控制+ C(SIGINT)来NSPIPE。 我的问题: 我应该送CTRL +Ç(SIGINT)到输入NSPipe我NSTask? inputPipe = [NSPipe pipe]; taskInput = [inputPipe fileHandleForWriting]; NSString dataString = @"\cC"; [

    3热度

    1回答

    有没有一种方法可以在不使用Ctrl + C(或从另一个进程发送的等效信号)的情况下阻止劣势?我使用的是Windows平台,并且从另一个进程管理GDB,因此没有信号概念当没有任何断点的自由运行时,没有一种好方法可以中断我的程序的执行。 编辑度: 这里涉及到2个进程。流程A是GDB的母公司。 GDB正在管理一个进程,但它在一个远程主机上,我们将这个进程称为C。 当我告诉GDB“运行”时,它启动远程主机

    29热度

    3回答

    我有一个用户定义的析构函数的类。如果最初实例化类,然后在程序运行时发出SIGINT(在unix中使用CTRL + C),那么将调用析构函数吗? SIGSTP的行为是什么(unix中的CTRL + Z)?