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

📄 semtest.c

📁 Advanced UNIX Programming is the long-awaited (19 years!) update to the 1985 original. Maybe "update
💻 C
字号:
#include "defs.h"#include <semaphore.h>#define SEMFILE "/testsem"int main(void){	sem_t *sem;	pid_t pid;	int val, i;	(void)sem_unlink(SEMFILE);	ec_cmp( sem = sem_open(SEMFILE, O_CREAT, 0666, 5), SEM_FAILED )	if ((pid = fork()) == 0) {		while (true) {			printf("child waiting...\n");			ec_neg1( sem_wait(sem) )			ec_neg1( sem_getvalue(sem, &val) )			printf("child got semaphore; value = %d\n", val);		}	}	printf("parent ready for post loop\n");	for (i = 0; i < 3; i++) {		ec_neg1( sem_post(sem) )		sleep(1);	}	kill(pid, SIGKILL);	waitpid(pid, NULL, 0);	printf("parent done\n");	exit(EXIT_SUCCESS);EC_CLEANUP_BGN	exit(EXIT_FAILURE);EC_CLEANUP_END}

⌨️ 快捷键说明

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