test10~3.txt

来自「嵌入式c源码」· 文本 代码 · 共 38 行

TXT
38
字号
/*无主函数,只是一个功能子函数*/
#include <signal.h>
#include <stddef.h>

static void sig_alarm(void)
{
	return;
}


unsigned int sleep(unsigned int nsecs)
{
	struct sigaction newact, oldact;
	sigset_t newmask, oldmask, suspmask;
	unsigned int unslept;

	newact.sa_handler=sig_alarm;
	sigemptyset(&newact.sa_mask);
	newact.sa_flags=0;
	sigaction(SIGALRM, &newact, &oldact);

	sigemptyset(&newmask);
	sigaddset(&newmask, SIGALRM);
	sigprocmask(SIG_BLOCK,&newmask, &oldmask);

	alarm(nsecs);

	suspmask=oldmask;
	sigdelset(&suspmask, SIGALRM);

	sigsuspend(&suspmask);

	unslept=alarm(0);
	sigaction(SIGALRM, &oldact, NULL);
	sigprocmask(SIG_SETMASK, &oldmask, NULL);
	return(unslept);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?