cost 285 ms
如何手動調用由 `pthread_atfork()` 注冊的 fork 處理程序?

[英]How to call manually fork handlers registered by `pthread_atfork()`?

我在 glibc 中使用vfork()並根據vfork()的手冊頁: 當使用 NPTL 線程庫的多線程程序調用 vfork() 時,不會調用使用 pthread_atfork(3) 建立的分叉處理程序。 在這種情況下,在使用 LinuxThreads 線程庫的程序中調用分叉處理程序。 在 NPTL ...

一個fork child可以判斷它是fork還是vfork嗎?

[英]Can a fork child determine whether it is a fork or a vfork?

在子進程中,有什么方法可以確定它是作為帶有覆蓋 memory 的叉子啟動的,還是作為帶有共享 memory 的 vfork 啟動的? 基本上,我們的日志引擎在 vfork 中需要更加小心(而不是記錄某些活動類別)。 在 fork 中,它需要以在 vfork 中不需要的方式與父進程合作。 我們知道如 ...

為什么在fork()之后給不同的進程設置不同的變量?

[英]Why Set Different Variables to Different Processes after fork()?

我遇到了一個看起來像這樣的代碼 根據我對堆棧溢出的了解,我可以看出父進程和子進程的 char 值會有所不同。 孩子的價值是'C',父母的價值是'P'。 我還可以看出,父和子中的地址應該相同,即“sharedVariable”(&sharedVariable) 的地址。 但是,這是我的問 ...

vfork() 的返回類型

[英]Return type of vfork()

來自 GNU 手冊: vfork() function 與 fork(2) 具有相同的效果,除了如果由 vfork() 創建的進程修改了用於存儲來自 vfork() 的返回值的 pid_t 類型的變量以外的任何數據,則行為未定義, 這是什么意思? 這是否意味着vfork()的返回值不能分配給非pi ...

2020-05-29 07:01:24   1   18    vfork  
如何判斷在vfork()處理過的過程中是否調用過函數?

[英]How to tell if a function is called within a vfork()'ed process?

我有一個用於C的插入器庫。無法插入vfork()因為vfork() (插入函數)在調用了真正的vfork()之后無法返回到調用函數。 但是我要插入_exit()因為我需要知道進程何時完成。 當然,我要插入exec*()函數。 我的問題是,當插入_exit() ,某些事情我想在正常進程調用_ ...

2019-09-18 13:12:02   1   109    c / linux / vfork  
如何使用SIGALRM終止程序

[英]How to terminate a program using SIGALRM

所以基本上我的程序中有4-5個功能。 它由很多行代碼和文件的讀寫操作組成,並且可能以無限循環(更糟的情況)結尾,如果超出20秒,我想終止程序。 下面的代碼不起作用,我的程序掛起,操作系統為我終止了它,而不是程序自行終止。 我認為我遇到的主要問題是在主機中設置了警報,當達到警報時間限制時,該 ...

2019-09-18 00:42:08   2   52    c / vfork  
我可以在 vfork 之后調用 dup2 嗎?

[英]Can I call dup2 after vfork?

我想vfork()一個子進程,但有它的stdout比父母的不同stdout 。 使用fork()實現此目的的明顯方法是在 fork 之后在子dup2() (和close()原始文件描述符)。 假設我在調用vfork()之前准備好了文件描述符,並且只需要在調用exec*()函數之前調用這兩個系統調 ...

vfork()的多個進程

[英]Multiple Processes with vfork()

我試圖在運行uClinux的SmartFusion2 SOM上運行多個進程,但是我只能在上面使用vfork()而不是fork()。 我一直在嘗試運行以下代碼來測試運行多個進程,但沒有得到想要的結果。 該代碼應該同時運行兩個不同的程序,但是我遇到了SEGV錯誤。 這是代碼: 它可 ...

從 nd_syscall.vfork.return 在 systemtap 中獲取新的 pid

[英]Get new pid from nd_syscall.vfork.return in systemtap

我試圖從一個奇怪的 makefile 中提取內容,我發現 systemtap 是一個潛在的好解決方案,所以我在這里: 使用nd_syscall.clone.return進行探測時,我可以獲得從新進程調用的正確pid() ppid() ,但這不包括我在目標腳本中找到的所有 vfork。 因此,當我 ...

vfork導致內存“ free()”崩潰,但是fork沒有,它是如何發生的?

[英]vfork leads to a memory “free()” crash, but fork doesn't, how it happened?

我試圖查看vfork是否創建與父進程共享內存的子進程,如下所示: 我希望i和* pi的值在父進程和chid進程之間共享,但是當我執行它時:$ g ++ myvshare.cpp && ./a.out 我很困惑: 我希望vfork應該不同於fork, ...

vfork()失敗,錯誤號513

[英]vfork() failed with error no 513

在基於RHEL 6.6的環境中,我們正在通過XML rpc服務器創建的線程進行IO。 線程執行執行vfork()的外部命令。 vfork()系統調用失敗,錯誤號為513。 可能是什么原因造成的? ...

Busybox udhcpd vfork啟動兩個進程

[英]Busybox udhcpd vfork starts two processes

在我的應用程序中,我需要啟動Busybox udhcpd(DHCP服務器),代碼如下。 雖然udhcpd確實可以啟動和運行,但在進程列表中卻有兩個版本。 udhcpd運行正常,即為設備分配了IP地址。 日志輸出 UDHCPD以PID開頭:647(PID = 528) PS ...

popen()實現,fd泄漏和vfork()

[英]popen() implementation,fd leaks,and vfork()

在popen()的glibc實現中,它指定 popen()函數應確保在新的子進程中關閉來自先前在父進程中保持打開狀態的popen()調用的所有流。 為什么? 如果目的是避免fd泄漏,為什么不關閉所有打開的fd? popen()的glibc實現使用fork() 。 盡管 ...

2015-09-10 11:51:37   1   802    popen / vfork  
C程序中的fork vs vfork功能

[英]fork vs vfork functionality in a C program

我正在做一些C語言學習以進行自學,遇到了以下問題: A部分: b部分: 我們必須比較line a line b和line b line a的輸出。 a部分的輸出是: b部分的輸出為: 它出現在部分a中,總和是a和b的初始聲明的總和,而在部分b中,總和包 ...

2015-08-02 19:50:28   1   3692    c / fork / vfork  
使用fork(),如何才能使子進程始終運行?

[英]Using fork(), how can I make child process run always first?

子進程和父進程執行是並行的,首先取決於OS調度。 但是,總是在父母之前開始做孩子可以做些什么呢? 這是我的問題的偽代碼, 我想首先執行execv,然后再次創建新進程。 每個execv應該按順序。 ...

需要澄清有關vfork的使用

[英]Need clarification regarding vfork use

我想比父進程早運行子進程。 我只想使用來自子進程的execv調用,所以我使用的是vfork而不是fork。 但是假設execv失敗並返回,我想從我調用vfork的函數中返回非零值。 像這樣 上面的代碼是否正確,還是我應該使用其他某種機制比父代更早運行子代? 在某些鏈接 ...

在函數中調用vfork(),對結果感到困惑

[英]call vfork() in function, confused about the result

這是“ APUE”第8章(練習8.2,第二版)中的練習。 全部描述為: 回想一下圖7.6中典型的內存安排。 因為與每個函數調用相對應的堆棧幀通常存儲在堆棧中,並且由於在vfork之后子進程在父進程的地址空間中運行,所以如果對vfork的調用是從main以外的函數調用而子進程執行vf ...

在vfork子中被重復創建

[英]in vfork child are created repeatedly

任何人都可以解釋以下代碼: 在上面的代碼中,子進程被重復創建。 誰能幫我理解邏輯嗎? ...

vfork() 隱式聲明

[英]vfork() implicit declaration

我使用 vfork() 在 C 語言中工作。 我的程序工作正常,但我有關於隱式聲明的警告。 我的代碼: 我的警告是: 函數 'vfork' 的隱式聲明 [-Wimplicit-function-declaration] if(vfork()==0){^ 我包括那些: 如果我使用 for ...

2014-10-29 17:09:53   3   871    c / vfork  

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