【发布时间】:2021-03-24 08:48:46
【问题描述】:
我正在尝试实现一个信号处理程序,并且想知道是否需要显式清空 struct sigaction 的 sa_mask 字段,或者是否使用默认值初始化它足够了。
【问题讨论】:
-
您是从 posix
sigaction裁判到sa_mask字段吗?您需要为您的问题添加一点上下文。 -
是的,我正在尝试初始化 struct sigaction 并设置 sa_flags 和 sa_sigaction 但我不知道是否需要清空 sa_mask
-
您需要确保将其设置为已知状态——所有位为零都可以。如果该结构是在堆栈上分配的,则必须将其显式归零。如果它是由
malloc()分配的,则同上,但如果它是由calloc()分配的,则不是。如果结构是在文件范围(静态或全局)分配的,它将被初始化为所有字节,默认为零。所有这些都假设您不提供初始化程序。这会将您未明确初始化的位也设置为零。
标签: c linux signal-handling sigaction