Ejemplo n.º 1
0
void			signal_action(int signal)
{
	if (signal == SIGINT || signal == SIGQUIT)
		ft_sigint();
	else if (signal == SIGTERM || signal == SIGHUP || signal == SIGTTIN)
		ft_sigexit();
	else if (signal == SIGTSTP)
		ft_sigtstp();
	else if (signal == SIGCONT)
		ft_sigcont();
	else if (signal == SIGILL || signal == SIGABRT || signal == SIGBUS ||
			signal == SIGSEGV)
		ft_sigexit();
}
Ejemplo n.º 2
0
void		ft_take_signal(int sign)
{
	if (sign == SIGTSTP || sign == SIGTTIN || sign == SIGTTOU)
		ft_sigtstp();
	if (sign == SIGCONT || sign == SIGURG || sign == SIGCHLD || sign == SIGIO ||
		sign == SIGINFO)
	{
		ft_termios_init();
		ft_underline();
		signal(SIGTSTP, ft_take_signal);
	}
	if (sign == SIGINT || sign == SIGTERM || sign == SIGHUP || sign == SIGPIPE
		|| sign == SIGALRM || sign == SIGXCPU || sign == SIGXFSZ || sign ==
		SIGVTALRM || sign == SIGPROF || sign == SIGUSR1 || sign == SIGUSR2 ||
		sign == SIGQUIT || sign == SIGILL || sign == SIGTRAP || sign == SIGABRT
		|| sign == SIGEMT || sign == SIGFPE || sign == SIGBUS || sign == SIGSEGV
		|| sign == SIGSYS)
		ft_sigint();
	if (sign == SIGWINCH)
	{
		tputs(tgetstr("cl", NULL), 1, tty_putchar);
		ft_underline();
	}
}