From 776ce85255b8efe3a5d6edf536291e448e6d6c09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Gu=C3=A9len?= Date: Fri, 21 Feb 2025 15:35:33 +0100 Subject: [PATCH] Signal: basic signal handling. Correction. --- src/sig/sig.c | 18 +++++++++--------- src/sig/sig.h | 7 +++++-- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/sig/sig.c b/src/sig/sig.c index 2bd4b11..5cd6b9b 100644 --- a/src/sig/sig.c +++ b/src/sig/sig.c @@ -6,7 +6,7 @@ /* By: jguelen +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/02/20 10:26:05 by jguelen #+# #+# */ -/* Updated: 2025/02/21 14:48:48 by jguelen ### ########.fr */ +/* Updated: 2025/02/21 15:32:57 by jguelen ### ########.fr */ /* */ /* ************************************************************************** */ @@ -24,7 +24,7 @@ static void sig_interactive(int signum) */ static void ignoreif_sent_by_kill(int signum, siginfo_t *siginfo, void *context) { - (void *)context; + (void)context; if (siginfo->si_code == SI_USER) return ; g_signum = signum; @@ -34,9 +34,9 @@ int set_interactive_mode_sig_handling(void) { struct sigaction sig_act; - ft_bzero(&sig_act); - sig_act.sa_handler = &sig_int_new_prompt; - if (sigemptyset(sig_act.sa_mask) == -1) + ft_bzero(&sig_act, sizeof(struct sigaction)); + sig_act.sa_handler = &sig_interactive; + if (sigemptyset(&sig_act.sa_mask) == -1) return (-1); if (sigaction(SIGINT, &sig_act, NULL) == -1) return (-1); @@ -50,8 +50,8 @@ int set_exec_mode_sig_handling(void) { struct sigaction sig_act; - ft_bzero(&sig_act); - if (sigemptyset(sig_act.sa_mask) == -1) + ft_bzero(&sig_act, sizeof(struct sigaction)); + if (sigemptyset(&sig_act.sa_mask) == -1) return (-1); sig_act.sa_sigaction = &ignoreif_sent_by_kill; sig_act.sa_flags |= SA_SIGINFO; @@ -73,9 +73,9 @@ int set_default_sig_handling(void) struct sigaction sig; int i; - ft_bzero(&sig); + ft_bzero(&sig, sizeof(struct sigaction)); sig.sa_handler = SIG_DFL; - if (sigemptyset(sig.sa_mask) == -1) + if (sigemptyset(&sig.sa_mask) == -1) return (-1); i = 0; while (i < NSIG) diff --git a/src/sig/sig.h b/src/sig/sig.h index c46fe50..da48301 100644 --- a/src/sig/sig.h +++ b/src/sig/sig.h @@ -6,18 +6,21 @@ /* By: jguelen +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/02/19 18:21:55 by jguelen #+# #+# */ -/* Updated: 2025/02/21 13:52:47 by jguelen ### ########.fr */ +/* Updated: 2025/02/21 15:26:59 by jguelen ### ########.fr */ /* */ /* ************************************************************************** */ #ifndef SIG_H # define SIG_H +# include "libft.h" # include # include # include -# define NSIG 64 +# ifndef NSIG +# define NSIG 64 +# endif extern int g_signum;