fig15.31

来自「unix环境编程」· 31 代码 · 共 38 行

31
38
字号
#include "apue.h"#include <sys/shm.h>#define	ARRAY_SIZE	40000#define	MALLOC_SIZE	100000#define	SHM_SIZE	100000#define	SHM_MODE	0600	/* user read/write */char	array[ARRAY_SIZE];	/* uninitialized data = bss */intmain(void){	int		shmid;	char	*ptr, *shmptr;	printf("array[] from %lx to %lx\n", (unsigned long)&array[0],	  (unsigned long)&array[ARRAY_SIZE]);	printf("stack around %lx\n", (unsigned long)&shmid);	if ((ptr = malloc(MALLOC_SIZE)) == NULL)		err_sys("malloc error");	printf("malloced from %lx to %lx\n", (unsigned long)ptr,	  (unsigned long)ptr+MALLOC_SIZE);	if ((shmid = shmget(IPC_PRIVATE, SHM_SIZE, SHM_MODE)) < 0)		err_sys("shmget error");	if ((shmptr = shmat(shmid, 0, 0)) == (void *)-1)		err_sys("shmat error");	printf("shared memory attached from %lx to %lx\n",	  (unsigned long)shmptr, (unsigned long)shmptr+SHM_SIZE);	if (shmctl(shmid, IPC_RMID, 0) < 0)		err_sys("shmctl error");	exit(0);}

⌨️ 快捷键说明

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