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

📄 tstshm.c

📁 PostgreSQL 8.1.4的源码 适用于Linux下的开源数据库系统
💻 C
字号:
/*------------------------------------------------------------------------- * * tstshm.c *	  Test of System V Shared Memory Emulation * * Copyright (c) 1999, repas AEG Automation GmbH * * * IDENTIFICATION *	  $PostgreSQL: pgsql/src/backend/port/qnx4/tstshm.c,v 1.5 2003/11/29 19:51:54 pgsql Exp $ * *------------------------------------------------------------------------- */#include "postgres.h"#include <unistd.h>#include <sys/shm.h>intmain(int argc, char **argv){	int			c,				errflg = 0;	char		s[80];	key_t		key = 0x1000;	size_t		size = 256;	int			shmid = -1;	caddr_t		addr = NULL;	optarg = NULL;	while (!errflg && (c = getopt(argc, argv, "k:s:")) != -1)	{		switch (c)		{			case 'k':				key = atoi(optarg);				break;			case 's':				size = atoi(optarg);				break;			default:				errflg++;		}	}	if (errflg)	{		printf("usage: tstshm [-k key] [-s size]\n");		exit(1);	}	do	{		printf("shm(g)et, shm(a)t, shm(d)t, shm(c)tl, (w)rite, (r)ead, e(x)it: ");		scanf("%s", s);		switch (s[0])		{			case 'g':				shmid = shmget(key, size, IPC_CREAT | SHM_R | SHM_W);				if (shmid == -1)					perror("shmget");				break;			case 'a':				addr = shmat(shmid, NULL, 0);				if (addr == (void *) -1)					perror("shmat");				break;			case 'd':				if (shmdt(addr) == -1)					perror("shmdt");				else					addr = NULL;				break;			case 'c':				if (shmctl(shmid, IPC_RMID, NULL) == -1)					perror("shmctl");				else					shmid = -1;				break;			case 'w':				printf("String to write: ");				scanf("%s", addr);				break;			case 'r':				puts(addr);				break;		}	}	while (s[0] != 'x');	return 0;}

⌨️ 快捷键说明

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