when a process child is terminated he's sending a SIGCHLD to the parent process. Now, if the parent process have more than one child how the parent process knows which child had sent the signal?
how a process know's which child ended?
2.2k Views Asked by orenma At
2
There are 2 best solutions below
2
pilcrow
On
In addition to the wait() family of calls as in @shanet's answer, the SIGCHLD itself carries that information.
The si_pid member of the siginfo_t member passed to a three-argument signal handler (SA_SIGINFO) contains the child's PID.
Related Questions in C
- How to call a C language function from x86 assembly code?
- What does: "char *argv[]" mean?
- User input sanitization program, which takes a specific amount of arguments and passes the execution to a bash script
- How to crop a BMP image in half using C
- How can I get the difference in minutes between two dates and hours?
- Why will this code compile although it defines two variables with the same name?
- Compiling eBPF program in Docker fails due to missing '__u64' type
- Why can't I use the file pointer after the first read attempt fails?
- #include Header files in C with definition too
- OpenCV2 on CLion
- What is causing the store latency in this program?
- How to refer to the filepath of test data in test sourcecode?
- 9 Digit Addresses in Hexadecimal System in MacOS
- My server TCP doesn't receive messages from the client in C
- Printing the characters obtained from the array s using printf?
Related Questions in SIGNALS
- How can I chop up data before sending it into a multiprocessing function?
- Why does registering a handler function for SIGHUP prevent clicking the "X" to close the XTerm window when waiting for input in PHP CLI?
- How to use angular material drag and drop CDK to update value in a service?
- Run cleanup function in Python when Jenkins job is aborted
- How to generate a single key-press event signal with tkinter.bind method
- How can I fit my data better or shift my data? My fit is way below my data
- (Bash, terminal) why do killing script hotkeys don't work (e.g. ctrl-c, ctrl-z)
- In a Linux signal handler, will x86 extended state always be in XSAVE format, or can it be in XSAVEC format as well?
- Passing an Angular signal value from a component input into a service
- How is Unix signal propagated to PGID in namespaces and what is the impact of NSpgid on process signal handling?
- How can I capture a celery.signal for when a task is "queued", must include a way to access kwargs?
- Angular Signals: How to handle requests to API
- SIGCHLD handling in C socket programming
- Angular Behavior: Property Type Changes from SignalFunction to Boolean
- Is it true that the segmentation violation exception can only be triggered once?
Related Questions in SIGCHLD
- Global pointer appearing null to signal handler
- How can waitpid() reap more than one child?
- How waitpid is better than wait when multiple SIGCHLDs are raised simultaneously?
- What happens when you fork() from one of the created threads?
- Django runserver memory leak?
- c++ SIGCHLD create a wrong system call return
- How to read /proc/PID/maps of a child process just before the child process terminates
- Timer disarms when interval is too small
- Can i get the signal int constant (like SIGINT or SIGKILL) that terminated a process using using sigaction's flag siginfo with SIGCHLD in C?
- Capturing SIGCHLD and replacing terminated child
- error: conflicting types for ‘wstat’ in gcc
- Sleep not working in child process after the popen function call
- UNIX signal handling. Wait in SIGCHLD handler. C
- Handler for SIGCHLD signals
- Unable to getpgid() for a pid inside sigchld_handler
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
The
wait()syscall returns thepidof the child that terminated. You can callwait()in yourSIGCHLDhandler to determine which child terminated.From the man page: