⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fig12.17

📁 UNIX环境高级编程第二版(英文版)配书的源代码
💻 17
字号:
#include "apue.h"#include <pthread.h>pthread_mutex_t lock1 = PTHREAD_MUTEX_INITIALIZER;pthread_mutex_t lock2 = PTHREAD_MUTEX_INITIALIZER;voidprepare(void){	printf("preparing locks...\n");	pthread_mutex_lock(&lock1);	pthread_mutex_lock(&lock2);}voidparent(void){	printf("parent unlocking locks...\n");	pthread_mutex_unlock(&lock1);	pthread_mutex_unlock(&lock2);}voidchild(void){	printf("child unlocking locks...\n");	pthread_mutex_unlock(&lock1);	pthread_mutex_unlock(&lock2);}void *thr_fn(void *arg){	printf("thread started...\n");	pause();	return(0);}intmain(void){	int			err;	pid_t		pid;	pthread_t	tid;#if defined(BSD) || defined(MACOS)	printf("pthread_atfork is unsupported\n");#else	if ((err = pthread_atfork(prepare, parent, child)) != 0)		err_exit(err, "can't install fork handlers");	err = pthread_create(&tid, NULL, thr_fn, 0);	if (err != 0)		err_exit(err, "can't create thread");	sleep(2);	printf("parent about to fork...\n");	if ((pid = fork()) < 0)		err_quit("fork failed");	else if (pid == 0)	/* child */		printf("child returned from fork\n");	else		/* parent */		printf("parent returned from fork\n");#endif	exit(0);}

⌨️ 快捷键说明

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