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

📄 main.c~

📁 linux terminal thread semophores
💻 C~
字号:
#include <sys/types.h>#include <sys/ipc.h>#include <sys/msg.h>#include <stdio.h>#include <string.h>#include <sys/shm.h>#include <sys/wait.h>int main(){  struct shmid_ds buf;  int a[10]={0,1,2,3,4,5,6,7,8,9};  int a1[10]={0,0,0,0,0,0,0,0,0,0};  pid_t pid;  key_t key;  int shmid;   int *p,ps,i;  if((key = ftok("./",'a'))==-1){	perror("key");	return -1;  }  if((shmid = shmget(key,30*sizeof(int),IPC_CREAT|0640))==-1){	perror("shmget");	return -1;  }  if((p=(int *)shmat(shmid,NULL,0))==(void *)-1){	perror("shmat");	return -1;  }  pid=fork();  switch(pid){     	case -1:		perror("fork");		return -1;	case 0:		memcpy(p,a,sizeof(a));		sleep(2);		a1[0]=getpid();		memcpy(p,a1,sizeof(a1));		while(1);		break;	default:		while(waitpid(pid,&ps,WNOHANG)==0){			for(i=0;i<sizeof(a)/sizeof(int);i++)				printf("%d  ",p[i]);			usleep(500000);			if(p[0]>0)				kill(p[0],9);		}		printf("\n");				shmdt(p);				if(shmctl(shmid,IPC_RMID,&buf)==-1){			perror("shmclt");			return -1;		}  }return 0;}				

⌨️ 快捷键说明

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