semgetvalues.c

来自「unix网络编程的源码」· C语言 代码 · 共 31 行

C
31
字号
#include	"unpipc.h"

int
main(int argc, char **argv)
{
	int		semid, nsems, i;
	struct semid_ds	seminfo;
	unsigned short	*ptr;
	union semun	arg;

	if (argc != 2)
		err_quit("usage: semgetvalues <pathname>");

		/* 4first get the number of semaphores in the set */
	semid = Semget(Ftok(argv[1], 0), 0, 0);
	arg.buf = &seminfo;
	Semctl(semid, 0, IPC_STAT, arg);
	nsems = arg.buf->sem_nsems;

		/* 4allocate memory to hold all the values in the set */
	ptr = Calloc(nsems, sizeof(unsigned short));
	arg.array = ptr;

		/* 4fetch the values and print */
	Semctl(semid, 0, GETALL, arg);
	for (i = 0; i < nsems; i++)
		printf("semval[%d] = %d\n", i, ptr[i]);

	exit(0);
}

⌨️ 快捷键说明

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