signal-handling

    5热度

    1回答

    void (*)(int)类型的参数与__sighnd64_t类型的参数不兼容 下面是我的简单代码: #include <iostream> #include <string> #include <signal.h> #include <ctype> #include <stdlib.h> #include <stdio.h> typedef struct mystrcut {

    1热度

    1回答

    为处理SIGINT信号而创建的函数被卡在一个常量循环中。这个想法是让父进程忽略CTRL-C,但发送给子进程(并且它们将它作为默认进行处理)。当按CTRL-C时,会发生什么情况,信号处理函数被调用,但陷入无限循环。 kill调用应该发送SIGTERM到进程组中的所有进程,发送进程除外。任何帮助,将不胜感激。 功能代码为: void intHandler(int signum) { kill(0,

    0热度

    2回答

    我在Managing Signal Handling for daemons that fork()中找到了答案,对我正在做的事情非常有帮助。我不知道如何解决 “你会因此不需要安装任何的信号处理在execed进程启动时” 我没有在那个启动过程控制向上。有没有办法让我强制从叉子的父母那里得到exec的某些信号手柄? 编辑: { 我正在写一个Perl模块来监视长时间运行的进程。取而代之的 system

    3热度

    2回答

    以下是我想在运行“Red Hat Enterprise Linux 5.5(Tikanga)内核2.6.18-194.el5xen x86_64”的机器上使用的源代码示例。 OS。 一般的想法是,我想要回溯一些线程,所以我为该线程引发SIGUSR1信号,并且一个处理程序执行backtrace()调用。 在我的场景如下,FrameTwo函数在循环中调用malloc和free。每当为这个特定的线程产生

    6热度

    3回答

    我有一个p进程注册SIGALRM信号处理程序。设置定时器以定期发送信号SIGALRM以处理p。在进程p中也有多个线程正在运行。信号处理程序在被触发和执行时是不可抢占的吗?或者说,是否信号处理程序的执行不会被进程p中的任何线程中断? PS:我认为信号处理程序在内核中执行(是吗?),并且内核对用户模式线程不具有任何意义?纠正我,如果它是错误的...

    1热度

    3回答

    更新:这似乎是一个计时问题。在杀死呼叫之前添加一个呼叫进入睡眠状态可以使所有事情按预期工作。 我一直在玩克隆(2),并试图弄清它是如何工作的。我目前无法将信号发送到克隆进程。我有以下代码: #include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <signal.h> #include <sched.h> #i

    40热度

    5回答

    在Linux/Unix上有信号。 CtrlC one(SIGINT)对我来说很明显。 现在,在其他一些应用程序中有信号通过CtrlX?! 即使是一个信号,或者它是否会产生一个转义序列? 有什么事我可以类似于按CtrlÇ使用的东西(按CtrlV,按CtrlX ......)? 如果有人有线索,我不仅熟悉C语言,而且还赞赏这两种语言的答案!

    0热度

    1回答

    我使用的信号目前书面方式程序,我有这样的烦恼: 如何变更执行程序的状态,停止/运行,而不发送SIGSTOP/SIGCONT ? 我明白,我需要使用:当前正在运行的进程 void add_to_runqueue (struct task_struct * p) 和 void del_from_runqueue (struct task_struct * p) ,但如何获取结构的task_st

    0热度

    1回答

    我正在研究“在Linux平台上创建Postmortem数据记录器”。我之前也发布过关于这个项目的问题。在那里,我得到了在RHEL版本中创建核心转储文件的调用流程机制:2.6.18.128-el5。 得出如下: File Function called 1.source/ arch/i386/kernel/signal.c -----> do_signal() 2.source

    4热度

    3回答

    我读的C++设计与演变,由Bjarne Stroustrup的。关于异常处理和异步信号,提及如下: 是否可以使用异常来处理信号?几乎肯定不是在大多数C环境中。麻烦的是C使用了像malloc这样的函数,这些函数不可重入。如果在malloc中间发生中断并导致异常,则无法阻止异常处理程序再次执行malloc。 A C++实现,其中调用序列,并在整个运行时库是围绕重入的要求设计将有可能使信号扔except