cost 314 ms
sigprocmask之后的sigset_t值

[英]Value of sigset_t after sigprocmask

從man sigprocmask : “如果oset不為null,則將其設置為信號掩碼的先前值。” 我的問題:在不運行或調試程序的情況下, 在執行第10行之后,舊信號掩碼的值將存儲到y 。 由於在執行此行之前沒有阻塞信號,因此y的值是多少? 在執行第14行之 ...

子進程也應該解除阻塞的 SIGCHLD 信號嗎?

[英]Should child processes also be unblocking blocked SIGCHLD signals?

我正在嘗試了解阻塞和解除阻塞信號的工作原理,並且我正在嘗試了解以下代碼段。 具體來說,我正在查看第 28 行(在代碼中注釋): int a = sigprocmask(SIG_UNBLOCK, &mask, NULL); ,也就是信號在孩子中暢通無阻的地方。 教科書我得到的代碼從說,代碼 ...

這里使用信號的方式背后的想法是什么?

[英]What is the idea behind the way the signals are used here?

在閱讀和學習信號時,我發現了一個程序,該程序以特定方式使用信號。 我試過理解它,但是我不確定代碼的所有部分如何相互影響。 下面是上面提到的代碼,我在遇到困難的地方添加了注釋: 顯然,以上程序旨在最多容納42個子進程。 每當我們想要一個新的子進程時,我們就使用fork並調整cur ...

sigprocmask后傳遞信號

[英]Delivery of Signal after sigprocmask

我的印象是,使用sigprocmask()解除信號阻塞將導致待處理的阻塞信號被傳遞給進程。 在使用sigprocmask()解除阻塞信號的特定情況下,如果存在已經解除阻塞的待處理信號(例如SIGUSR1 ),則信號SIGUSR1將通過調用sigprocmask()解除阻塞另一個信號的方式傳 ...

sigprocmask不起作用,導致循環

[英]sigprocmask not working, cause a loop

這部分代碼用於在接收到SIGUSR1信號時執行新進程,因為該進程具有子進程,也需要退出,因此請使用kill將SIGUSR1發送到進程組,以避免循環,使用sigprocmask進行阻止SIGUSR1,但是它不起作用,它有一個無限循環,我找不到錯誤所在,也許我不太了解BLOCK的含義,但是使用 ...

sigtimedwait()的“ set”參數中的信號未傳遞

[英]Signals in the “set” parameter of sigtimedwait() not getting delivered

我最近一直在Linux上進行信號處理,並且已經閱讀了與信號處理相關的所有概念。 一個讓我煩惱的問題是,為什么在取消阻塞該進程的同時sigtimedwait()中的信號沒有得到傳遞。 我的代碼如下: 為了更清楚地說明問題,我在上面的代碼中將sigtimedwait稱為“ s1”作為“ ...

阻止信號的行為是什么?

[英]What is the behavior of blocking a signal?

如果我向進程發送了一堆SIGIO信號,並且該進程阻止了SIGIO信號並執行其他操作。 當我解除阻塞信號時,會依次出現一個SIGIO信號還是多個SIGIO信號? ...

兩個過程之間的順序信號

[英]Sequential signals between two processes

我有一個父進程和兩個孩子。 父進程僅創建兩個孩子,一個讀者和一個計數器,並等待其死亡。 孩子們做以下事情。 第一個孩子(讀者): 打開文件, 讀一行 向第二個孩子發送信號(SIGUSR1), 等待第二個孩子的信號, 如果我們可以閱讀另一行,請轉 ...

使用sigprocmask()的sigset_t Unix

[英]sigset_t unix using sigprocmask()

我正在嘗試使用printf打印sigset。 在此程序中,我使用了sigprocmask來阻止SIGHUP和SIGTERM。 將set初始化為空集后,oset將給出一些隨機的十六進制字符串作為輸出。 我應該如何解決這個問題? 另外,如果在執行后按Ctrl-C,則對程序的預期輸出有疑問 ...

sigprocmask不會恢復我的信號處理程序

[英]sigprocmask doesn't restore my signal handler

我的代碼C Unix有問題。 我將復制關鍵部分:所以在第一個sigprocmask之后我發送一個信號,在SIG_UNBLOCK之后,不能使用前一個句柄(gestisciSignalDopoReg)而不是標准句柄管理我的信號,所以它只是終止進程...出了什么問題? 謝謝 請! 我需要 ...

OS X sigaction錯誤地設置了sa_mask

[英]OS X sigaction incorrectly setting sa_mask

在macbook(OSX 10.9.5(13F34))上有以下簡單程序: 神秘印刷: 我希望osa的sa_mask成員匹配sigprocmask給出的mask 。 POSIX是否指定了該字段的任何要求? 在聯機幫助頁中唯一提到的是關於SIGKILL等SIGKILL阻塞的信 ...

使用sigprocmask設置掩碼僅在調用位置有效

[英]Set mask with sigprocmask works only depending where called

我有一個奇怪的行為,聯機幫助頁和Google幫不上忙。 在我的代碼中,我想在發送SIGUSR2時阻止/取消阻止SIGINT。 為此,我安裝了信號處理程序並為函數中的掩碼准備了集合: 然后,如果發送SIGUSR2,則調用此函數: 為了測試,我這樣稱呼它: 現在的問題 ...

exec之前在fork之后執行ALL清理步驟的官方文檔

[英]Official doc of ALL cleanup steps after fork before exec

在Unix上,我知道在調用fork()之后,需要在調用exec()之前重置信號掩碼並關閉我不希望孩子擁有的文件描述符。 但是,我還需要做什么? 在某處是否有全面的文檔列出了在創建子流程時可能需要清除的所有內容,以便為其提供一個良好的標准執行環境? 我目前在Linux上,但是我想 ...

如何在C中阻止信號?

[英]How to block signals in C?

我正在嘗試創建一個阻止信號SIGUSR1的程序,並且它將取消阻止該信號。 在中間,我想看看信號被sigpending阻塞了。 但是它總是說信號沒有被阻塞,在應該被阻塞的情況下我可以使用該信號。 這是我的代碼。 有人可以幫我嗎? ...

信號執行期間的sigprocmask

[英]sigprocmask during signal's execution

我目前正在研究在執行關鍵代碼段時使用sigprocmask阻止某些信號(在這種情況下為SIGALRM和SIGCHLD )。 與這些信號關聯的兩個信號處理程序都將訪問和修改中央數據結構,因此至關重要的是,在主要進程正在處理它們時,防止它們訪問它們。 目前,我的計划是在代碼關鍵部分的開頭簡單 ...

sigprocmask導致主進程卡住

[英]sigprocmask resulting in main process getting stuck

我有使用sigprocmask fn的多線程代碼。 據了解,在我理解的多線程程序中未指定此調用的使用,我將刪除此調用。 但是,我面臨的問題是,如果調用此函數,主線程將被卡住。 我想了解為什么會這樣。 如果對該函數的調用被注釋掉,則主線程執行良好。 在初始化期間,在我的主程序中,幾乎 ...

sigprocmask()在UNIX中阻塞信號

[英]sigprocmask( ) blocking signals in UNIX

我寫了一小段代碼。 此代碼首先阻塞{SIGSEGV},然后將SIGRTMIN添加到同一個集合中。 所以,我的最終信號集是{SIGSEGV,SIGRTMIN}。 因此,如果我使用SIG_UNBLOCK,根據我的理解,第一個SIGRTMIN應該被解除阻塞,然后如果我調用SIG_UNBLOCK, ...

sigprocmask不起作用

[英]sigprocmask not working

我正在使用sigprocmask,如下所示: 令我驚訝的是,即使我在開始時調用mask(),也能以某種方式中斷打印大列表的函數的信號。 好像mask失敗了,因為我的函數沒有調用任何其他函數,因此unmask()不會在其運行的任何地方發生。 什么會導致sigprocmask失敗? ...

sigprocmask()導致段錯誤

[英]sigprocmask() causing segfault

在多線程應用程序中使用時,是否有任何眾所周知的原因導致sigprocmask()出現段錯誤? 我有一個使用clone()創建多個線程的應用程序。 我已經確定,由於某些原因,當我使用sigprocmask時,會出現段錯誤(盡管不是所有時間)。 從backtrace()看來,當我在sigl ...

在sigprocmask()中設置和設置

[英]Set and Oldset in sigprocmask()

我還沒有完全理解,如何使用sigprocmask() 。 特別是, set和oldset及其語法如何工作以及如何使用它們。 請解釋一個例子,阻止,說SIGUSR1幾秒鍾,然后解鎖並處理它。 ...


 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM