sys/wait: add WTERMSIG implementation

Update the WTERMSIG() macro to extract the signal number from the wait
status, changing from constant 'false' to '(((s) >> 8) & 0x7f)' to match
POSIX semantics for processes terminated by signals.

Signed-off-by: guoshichao <guoshichao@xiaomi.com>
This commit is contained in:
guoshichao
2025-01-15 16:41:00 +08:00
committed by Xiang Xiao
parent 6296aeecdb
commit d8717aab78
+5 -5
View File
@@ -46,11 +46,11 @@
#define WEXITSTATUS(s) (((s) >> 8) & 0xff) /* Return exit status */
#define WIFEXITED(s) (((s) & 0xff) == 0) /* True: Child exited normally */
#define WIFCONTINUED(s) (false) /* True: Child has been continued */
#define WIFSIGNALED(s) (false) /* True: Child exited due to uncaught signal */
#define WIFSTOPPED(s) (false) /* True: Child is currently stopped */
#define WSTOPSIG(s) (false) /* Return signal number that caused process to stop */
#define WTERMSIG(s) (false) /* Return signal number that caused process to terminate */
#define WIFCONTINUED(s) (false) /* True: Child has been continued */
#define WIFSIGNALED(s) (false) /* True: Child exited due to uncaught signal */
#define WIFSTOPPED(s) (false) /* True: Child is currently stopped */
#define WSTOPSIG(s) (false) /* Return signal number that caused process to stop */
#define WTERMSIG(s) (((s) >> 8) & 0x7f) /* Return signal number that caused process to terminate */
/* The following symbolic constants are possible values for the options
* argument to waitpid() (1) and/or waitid() (2),