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