01-18-2008
Look at
sigaction
Quote:
If the argument act is a null pointer, signal handling is unchanged; thus, the call can be used to enquire about the current handling of a given signal.
10 More Discussions You Might Find Interesting
1. Programming
signal in process communication:
I 'm a example in sun_unix that signal in process communication
It's here down but I only have freebsd in my machine.
how can i do the same in freebsd
eg:
#include <stdio.h>
#include <signal.h>
#include <unistd.h>
int
main( void ){
void... (2 Replies)
Discussion started by: a9711
2 Replies
2. UNIX for Advanced & Expert Users
I want to catch SIGCHLD signal in parent process. I can't use wait() system call to catch SIGCHLD according to project requirment.
Operating system linux 3.1
can any one have a solution for this.
Thanking you,
ranjan (2 Replies)
Discussion started by: ranjan
2 Replies
3. Programming
i am creating children processes using fork system call
every child i create goes to sleep for random time.
when child stops running how can i catch his signal and turminate the child (2 Replies)
Discussion started by: emil2006
2 Replies
4. AIX
Hello,
We are using AIX 5.2 ML 7.
One of the process in its log file said the following and stopped running.
Caught signal=5, exiting.
What would cause the signal 5 to be generated on an AIX box.
Please advise.
Thx
Jerardfjay (2 Replies)
Discussion started by: jerardfjay
2 Replies
5. UNIX for Dummies Questions & Answers
Hi All,
I facing a problem in handling signals between parent process communication. I am trying to send a signal(SIGINT) from child to parent. I am using kill function to do so and I am trying to read the signal using sigaction(). But the program is ending abruptly and I am not able to figure out... (4 Replies)
Discussion started by: vkn_1985
4 Replies
6. Programming
Hi all,
Does a background process send a signal to its parent when completed? If so, how might i capture this signal?
I'm trying to write shell in c so that when a background process finishes, it prints a message to the console.
Thanks in advance for any advice. (1 Reply)
Discussion started by: jmelai
1 Replies
7. Programming
I'm trying to do a program that makes activate an signal (SINGALARM) when the next child of a son appears but this not works.
I have to caught the next child o the other (pid), to send a singnal which inform a menssage.
It's anything worng in the code?
thanks.
the code:
#include... (2 Replies)
Discussion started by: marmaster
2 Replies
8. Programming
Hi, i want that the parent process start before the child, this code doesn't work,
if the child start before the parent it wait for signal, then the father send the signal SIGALRM and the child catch it and call printf;
else the father call printf and send the signal to the child that call its... (1 Reply)
Discussion started by: blob84
1 Replies
9. Emergency UNIX and Linux Support
Hello, everyone.
Here's a program:
pid_t pid = fork();
if (0 == pid) // child process
{
execvp ...;
}
I send a signal (such as SIGINT) to the parent process, the child process receive the signal as well as the parent process.
However I don't want to child process to receive the... (7 Replies)
Discussion started by: jackliang
7 Replies
10. Shell Programming and Scripting
Hi, I would like to ask, if is it possible to quit running loop in the script any other way than catching the trap signal. Ctrl-C ends only current running instance of process but not whole script. Any clues? (3 Replies)
Discussion started by: smoofy
3 Replies
LEARN ABOUT REDHAT
sigqueue
SIGQUEUE(2) Linux Programmer's Manual SIGQUEUE(2)
NAME
sigqueue - queue a signal and data to a process
SYNOPSIS
#include <signal.h>
int sigqueue(pid_t pid, int sig, const union sigval value);
DESCRIPTION
sigqueue() sends the signal specified in sig to the process whose PID is given in pid. The permissions required to send a signal are the
same as for kill(2). As with kill(2), the null signal (0) can be used to check if a process with a given PID exists.
The value argument is used to specify an accompanying item of data (either an integer or a pointer value) to be sent with the signal, and
has the following type:
union sigval {
int sival_int;
void *sival_ptr;
};
If the receiving process has installed a handler for this signal using the SA_SIGINFO flag to sigaction(2), then it can obtain this data
via the si_value field of the siginfo_t structure passed as the second argument to the handler. Furthermore, the si_code field of that
structure will be set to SI_QUEUE.
RETURN VALUE
On success, sigqueue() returns 0, indicating that the signal was successfully queued to the receiving proces. Otherwise -1 is returned and
errno is set to indicate the error.
ERRORS
EAGAIN The limit of signals which may be queued has been reached. (See signal(7) for further information.)
EINVAL sig was invalid.
ESRCH No process has a PID matching pid.
EPERM The process does not have permission to send the signal to the receiving process. (See kill(2) for further information.)
NOTES
If this function results in the sending of a signal to the process that invoked it, and that signal was not blocked by the calling thread,
and no other threads were willing to handle this signal (either by having it unblocked, or by waiting for it using sigwait(3)), then at
least some signal must be delivered to this thread before this function returns.
CONFORMING TO
POSIX 1003.1-2001
SEE ALSO
kill(2), sigaction(2), signal(2), sigwait(3), signal(7)
Linux 2.4.18 2002-06-07 SIGQUEUE(2)