All pastes #465452 Raw Edit

Unnamed

public c v1 · immutable
#465452 ·published 2007-04-30 10:53 UTC
rendered paste body
#include <signal.h>#include <stdio.h>#include <sys/types.h>#include <unistd.h>#include <stdlib.h>// pro zapamatovani, jestli signal prisel nebo ne...volatile sig_atomic_t usr_interrupt = 0;void synch_signal(int sig) {	usr_interrupt = 1;}void child_function(int stav) {	sigset_t mask;	sigemptyset(&mask);	sigaddset(&mask,SIGUSR1);	printf("potomek\n");	kill(getppid(),SIGUSR1);	printf("po signalu\n");	sigsuspend(&mask);	printf("po zotavenis\n");	exit(EXIT_SUCCESS);}int main(void) {	struct sigaction usr_action;	sigset_t block_mask, old_mask;	int stav;	sigfillset(&block_mask);		usr_action.sa_handler = synch_signal;	usr_action.sa_mask = block_mask;	usr_action.sa_flags = 0;	sigaction (SIGUSR1, &usr_action, NULL);	stav = fork();	if(stav == 0) child_function(2);	sigemptyset(&block_mask);	sigaddset(&block_mask,SIGUSR1);	sigprocmask(SIG_BLOCK, &block_mask, &old_mask);	printf("cekam\n");		while(!usr_interrupt) {		sigsuspend(&old_mask);	}	printf("docekal sem\n");	sigprocmask(SIG_UNBLOCK, &block_mask, NULL);		kill(stav,SIGUSR1);	return(EXIT_SUCCESS);}