//进程通信,共享存储区 #include <unistd.h> #include <sys/types.h> #include <sys/socket.h> #include <netdb.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #include <errno.h> #include <malloc.h> #include <netinet/in.h> #include <arpa/inet.h> #include <sys/ioctl.h> #include <stdarg.h> #include <fcntl.h> #include <fcntl.h> #include<sys/types.h> #include<sys/shm.h> #include<sys/ipc.h> #define SHMKEY 75 int shmid,i; int *addr; void client() { int i; shmid=shmget(SHMKEY,,); addr=shmat(shmid,,); ;i>=;i--) { ); printf("(client)sent\n"); *addr=i; } exit(); } void server() { shmid=shmget(SHMKEY,,|IPC_CREAT); addr=shmat(shmid,,); do { *addr=-; ); printf("(server)received\n"); }while(*addr); shmctl(shmid,IPC_RMID,); exit(); } main() { ); if(!i)server(); system("ipcs -m"); ); if(!i)client(); wait(); wait(); }