C++程序  |  31行  |  658 B

/*
 * Check that strace output contains RT_1 RT_3 RT_31 RT_32 here:
 *  rt_sigprocmask(SIG_BLOCK, [CHLD RT_1 RT_3 RT_31 RT_32], NULL, 8) = 0
 * and here:
 *  sigreturn() (mask [CHLD RT_1 RT_3 RT_31 RT_32]) = 0
 *
 * On x86, both 32-bit and 64-bit strace needs to be checked.
 */
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>

void null_handler(int sig)
{
}

int main(int argc, char *argv[])
{
	sigset_t set;
	sigemptyset(&set);
	sigaddset(&set, SIGCHLD);
	sigaddset(&set, 33);
	sigaddset(&set, 35);
	sigaddset(&set, 63);
	sigaddset(&set, 64);
	sigprocmask(SIG_BLOCK, &set, NULL);
	signal(SIGWINCH, null_handler);
	raise(SIGWINCH);
	return 0;
}