reenter.c

来自「unix高级编程源代码.<<unix高级编程>>」· C语言 代码 · 共 35 行

C
35
字号
#include	<pwd.h>
#include	<signal.h>
#include	"ourhdr.h"

static void	my_alarm(int);

int
main(void)
{
	struct passwd	*ptr;

	signal(SIGALRM, my_alarm);
	alarm(1);

	for ( ; ; ) {
		if ( (ptr = getpwnam("stevens")) == NULL)
			err_sys("getpwnam error");
		if (strcmp(ptr->pw_name, "stevens") != 0)
			printf("return value corrupted!, pw_name = %s\n",
					ptr->pw_name);
	}
}

static void
my_alarm(int signo)
{
	struct passwd	*rootptr;

	printf("in signal handler\n");
	if ( (rootptr = getpwnam("root")) == NULL)
			err_sys("getpwnam(root) error");
	alarm(1);
	return;
}

⌨️ 快捷键说明

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