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

📄 rshm.c

📁 《精通Unix下C语言编程与项目实践》的源代码
💻 C
字号:
#include <comlib.h>#define VERIFYERR(a, b)  \	if (a) \	{\		fprintf(stderr, "%s failed.[%s]\n", b, strerror(errno));  \		return;\	}void main(int argc, char **argv){	int shmid, semid, index;	char buf[1024], *paddr;	//打开信号量	if (argc != 2) return;				/* 输入记录编号 */	VERIFYERR((semid = semget(0x1234, 1, 0666|IPC_CREAT)) < 0, "Open(Create) Sem");	/* 创建或打开信号量 */	VERIFYERR((shmid = shmget(0x1234, 20*1024, 0666|IPC_CREAT))<0, "Open(Create) Shm");	/* 创建或打开共享内存 */	index = atoi(argv[1]);				/* 获取记录编号 */	VERIFYERR((paddr = shmat(shmid, NULL, 0)) == NULL, "Shmat");	PrintLog(stderr, "Read Memo index =[%d]", index);	printf("Data: %s \n", GetMemoAddr(paddr, index));	/* 输入记录数据 */	FreeMemo(shmid, semid, 0, index);		/* 释放内存记录 */	shmdt(paddr);					/* 释放内存映射 */}

⌨️ 快捷键说明

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