12-02-2011
Quote:
Originally Posted by
achenle
Is fprintf() listed as an async-signal safe call?
fprintf is not async-signal safe, but replacing it by write(STDERR_FILENO,...) did not change anything - received only 1 SIGUSR1 of 3.
Last edited by DendyGamer; 12-02-2011 at 04:19 PM..
10 More Discussions You Might Find Interesting
1. Programming
I am trying to send a SIGUSR1 to a set of process. Please tell
me how to do. I've tried the system call raise(int sig) but it just
raise a signal of to the 'current process.'
My program is about a network chat server. When a client
connects in, The main process will fork a new process... (1 Reply)
Discussion started by: Namely
1 Replies
2. UNIX for Advanced & Expert Users
hi
I have created a application which uses SIGUSR2. It send this signal to server and waits for signal SIGUSR2 from server after server performing some operation server sends SIGUSR2 back to the application. The application then quits.
This works fine which ran from terminal , but when I... (3 Replies)
Discussion started by: khan_069
3 Replies
3. Programming
I am using the signal function, and passing it a function named quit procedure...I get the following warning....
passing arg2 of signal from incompatible pointer type...
void quit_procedure(void); //this is the way i define my prototype...
signal(SIGINT, quit_procedure);
Please guide... (5 Replies)
Discussion started by: jacques83
5 Replies
4. Programming
#include<signal.h>
void suicide();
main()
{
printf("use CTRL \\ for exiting \n");
//signal(SIGINT,SIG_DFL);
signal(SIGQUIT,suicide);
for (;;);
}
void suicide()
{ printf("hello here you r in the suicide code ");
}
i was just starting with signals .. and tried this ,, but in the... (10 Replies)
Discussion started by: narendra.pant
10 Replies
5. Programming
Hi,
I have a daq program that runs in an infinite loop until it receives SIGINT. A handler catches the signal and sets a flag to stop the while loop. After the loop some things have to be cleaned up.
The problem is that I want my main while loop to wait until the next full second begins, to... (2 Replies)
Discussion started by: soeckel
2 Replies
6. Programming
i wrote handler for sigsegv such that i can allocate memory for a variable to which
sigsegv generated for illlegal acces of memory.
my code is
#include <signal.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char *j;
void segv_handler(int dummy)
{
j=(char *)malloc(10);
... (4 Replies)
Discussion started by: pavan6754
4 Replies
7. Programming
hi friends i have a problem in signal handling ...
let me explain my problem clearly..
i have four process ..
main process forks two child process and each child process again forks another new process respectively...
the problem is whenever i kill the child process it is reforking and the... (2 Replies)
Discussion started by: senvenugopal
2 Replies
8. Programming
Hi all,
Sorry about the title,at first i decided to ask a problem about the signal mechanism,however,i'm now figured it out.Sorry to forget modify the title:wall:.I had a small problem that if i use the code which is commented,the code would get a segment fault,while the above code NOT.what's... (4 Replies)
Discussion started by: homeboy
4 Replies
9. Programming
i m unble to execute code of
signal handler using
a) Wait b) Waitpid (1 Reply)
Discussion started by: madhura
1 Replies
10. Linux
hey,
i have been facing a very fatel error with dovecot..
i am getting this error in my dovecot.log file
dovecot: Feb 13 15:21:02 Fatal: chdir(/var/mail/folders/user1) failed with uid 1001: Permission denied
dovecot: Feb 13 15:21:02 Error: child 18732 (imap) returned error 89
dovecot: Feb... (3 Replies)
Discussion started by: htshshrm2
3 Replies
LEARN ABOUT NETBSD
pthread_atfork
PTHREAD_ATFORK(3) BSD Library Functions Manual PTHREAD_ATFORK(3)
NAME
pthread_atfork -- register handlers to be called when process forks
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <pthread.h>
int
pthread_atfork(void (*prepare)(void), void (*parent)(void), void (*child)(void));
DESCRIPTION
The pthread_atfork() function registers the provided handler functions to be called when the fork(2) function is called. Each of the three
handlers is called at a different place in the fork(2) sequence. The prepare handler is called in the parent process before the fork hap-
pens, the parent handler is called in the parent process after the fork has happened, and the child handler is called in the child process
after the fork has happened. The parent and child handlers are called in the order in which they were registered, while the prepare handlers
are called in reverse of the order in which they were registered.
Any of the handlers given may be NULL.
The intended use of pthread_atfork() is to provide a consistent state to a child process from a multithreaded parent process where locks may
be acquired and released asynchronously with respect to the fork(2) call. Each subsystem with locks that are used in a child process should
register handlers with pthread_atfork() that acquires those locks in the prepare handler and releases them in the parent handler.
RETURN VALUES
The pthread_atfork() function returns 0 on success and an error number on failure.
ERRORS
The following error code may be returned:
[ENOMEM] Insufficient memory exists to register the fork handlers.
SEE ALSO
fork(2)
STANDARDS
The pthread_atfork() function conforms to IEEE Std 1003.1c-1995 (``POSIX.1'').
HISTORY
The pthread_atfork() function first appeared in NetBSD 2.0.
CAVEATS
After calling fork(2) from a multithreaded process, it is only safe to call async-signal-safe functions until calling one of the exec(3)
functions. The pthread_*() functions are not async-signal-safe, so it is not safe to use such functions in the child handler.
BUGS
There is no way to unregister a handler registered with pthread_atfork().
BSD
February 12, 2003 BSD