Sponsored Content
Full Discussion: UNIX signal problem
Top Forums Programming UNIX signal problem Post 302501963 by homeboy on Sunday 6th of March 2011 02:18:04 AM
Old 03-06-2011
UNIX signal problem

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 titleSmilie.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 the problem?
Code:
void sig_handler(int signo)
{
	printf("signo = %d\n",signo);
}

int main()
{	
	struct sigaction sa;
	pid_t pid;

	sa.sa_handler = sig_handler;
	
	if(sigaction(SIGUSR1,&sa,NULL) < 0){
		perror("sigaction failed");
		exit(1);
	}

	printf("my pid is %d\n",getpid());

	sigset_t set;
	sigemptyset(&set);

	int i = sigsuspend(&set);
	//sigsuspend(&set);
	return 0;	
}

 

10 More Discussions You Might Find Interesting

1. Programming

[Problem] raise a signal in FreeBSD

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

I have a problem using signal SIGUSR2

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

Signal Problem

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

problem with signal()

#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

problem in SIGSEGV signal handling

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

6. Programming

problem in reforking and signal handling

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

7. Solaris

Signal Processing in unix

I've read the man page of singal(3) but I still can't quite understand what is the difference between SIGINT, SIGALRM and SIGTERM. Can someone tell me what is the behavioral difference among these 3 signals in kill command? Thanks! (2 Replies)
Discussion started by: joe228
2 Replies

8. Programming

problem in doing coding of signal handler

i m unble to execute code of signal handler using a) Wait b) Waitpid (1 Reply)
Discussion started by: madhura
1 Replies

9. Programming

Losing signal problem

I'm newbie in UNIX programming, I have a problem with signals. I'm writing multithread program, where threads can die at any moment. When thread dies it generates signal SIGUSR1 to main thread and then thread dies. Main thread gets a signal and waits for thread dead. I wrote program like this: ... (5 Replies)
Discussion started by: DendyGamer
5 Replies

10. Linux

Problem with dovecot (Killed with signal 15)

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
SIGSETOPS(3)						   BSD Library Functions Manual 					      SIGSETOPS(3)

NAME
sigemptyset, sigfillset, sigaddset, sigdelset, sigismember -- manipulate signal sets LIBRARY
Standard C Library (libc, -lc) SYNOPSIS
#include <signal.h> int sigemptyset(sigset_t *set); int sigfillset(sigset_t *set); int sigaddset(sigset_t *set, int signo); int sigdelset(sigset_t *set, int signo); int sigismember(sigset_t *set, int signo); DESCRIPTION
These functions manipulate signal sets stored in a sigset_t. Either sigemptyset() or sigfillset() must be called for every object of type sigset_t before any other use of the object. The sigemptyset() function initializes a signal set to be empty. The sigfillset() function initializes a signal set to contain all signals. The sigaddset() function adds the specified signal signo to the signal set. The sigdelset() function deletes the specified signal signo from the signal set. The sigismember() function returns whether a specified signal signo is contained in the signal set. sigemptyset() and sigfillset() are provided as macros, but actual functions are available if their names are undefined (with #undef name). RETURN VALUES
The sigismember() function returns 1 if the signal is a member of the set, a 0 otherwise. The other functions return 0 upon success. A -1 return value indicates an error occurred and the global variable errno is set to indicate the reason. ERRORS
These functions could fail if one of the following occurs: [EINVAL] signo has an invalid value. SEE ALSO
kill(2), sigaction(2), sigsuspend(2), signal(7) STANDARDS
These functions conform to ISO/IEC 9945-1:1990 (``POSIX.1''). BSD
June 4, 1993 BSD
All times are GMT -4. The time now is 05:14 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy