共享内存
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include<unistd.h> 4 #include<string.h> 5 #include<sys/types.h> 6 #include<sys/wait.h> 7 8 #include<sys/ipc.h> 9 #include<sys/shm.h> 10 11 int main(int arg ,char *args[]) 12 { 13 14 /* 创建共享文件 15 * int shmid = shmget(IPC_PRIVATE,1024,0666); 16 if(shmid < 0) 17 printf("error\n"); 18 else 19 printf("success\n"); 20 */ 21 22 23 24 /* 进程挂载共享文件 25 char* shmbuf; 26 int shmid=0; 27 if(arg>1) 28 { 29 shmid = atoi(args[1]);//通过命令行传递共享内存IP号 30 shmbuf = shmat(shmid,0,0);//附加到共享内存 31 sleep(60); 32 shmdt(shmbuf); 33 } 34 */ 35 char* shmbuf; 36 int shmid=0; 37 if(arg>2) 38 { 39 shmid = atoi(args[1]);//通过命令行传递共享内存IP号 40 shmbuf = shmat(shmid,0,0);//附加到共享内存 41 if(atoi(args[2])==1) //write shared mem 42 { 43 scanf("%s",shmbuf); 44 } 45 if(atoi(args[2])==2)//read shared mem 46 { 47 printf("%s\n",shmbuf); 48 } 49 shmdt(shmbuf); 50 } 51 52 return 0; 53 }