Untitled
unknown
plain_text
20 days ago
1.5 kB
1
Indexable
Never
#include<stdio.h> #include<sys/types.h> #include<sys/ipc.h> #include<sys/shm.h> Struct country { char name[30]; char capital_city [30]; char currency[30]; int population; }; int main(intargc,char*argv[]) { int shm_id; char*shm_addr; int*countries_num; struct country*countries; structshmid_dsshm_desc; shm_id=shmget(100,2048,IPC_CREAT|IPC_EXCL\0600); if(shm_id==-1){ perror("main:shmget:"); exit(1); } shm_addr=shmat(shm_id,NULL,0); if(!shm_addr){ ierror("main:shmat:"); exit(1); } countries_num=(int*)shm_addr; *countries_num=0; countries=(struct country*)((void*)shm_addrsizeof(int)); strcpy(countries[0],name,"U.S.A"); strcpy(countries[0],capital_city,"WASHINGTON"); strcpy(countries[0],currency,"U.S.DOLLAR"); countries[0].population=250000000; (countries_num) ; strcpy(countries[1].name,"israel"); strcpy(countries[1].capital_city,"jerushalem"); strcpy(countries[1].currency,"NEW ISRAEL SHEKED"); countries[1].population=6000000; (*countries_num) ; strcpy(countries[2].name,"France"); strcpy(countries[2].capital_city,"paris"); strcpy(countries[2].currency,"Frank"); countries[2].population=60000000; (*countries_num); for(i=0;i<(*countries_num);i ) { printf("country%d:\n",i 1); printf("name:%d:\n",i 1); printf("currency:%s:\n",countries[i].currency); printf("population:%d:\n",countries[i].population); } if(shmdt(shm_addr)==-1){ perror("main:shmdt:"); } if(shmctl(shm_id,IPC_RMID,&SHM_DESC)==-1) { perror("main:shmctl:"); } return 0; }