松阳县建设局网站,杭州互联网网站定制公司,网站建设开题报告书,网站建设的作用和意义1.mmap父子进程通信 \qquad父子等有血缘关系的进程之间也可以通过mmap建立的映射区来完成数据通信。但相应的要在创建映射区时候指定对应的标志位参数flags: \qquadMAP_PRIVATE#xff1a;父子进程各自独占映射区#xff1b;MAP_SHARED#xff1a;父子进程共享映射区。
2.m…1.mmap父子进程通信
\qquad父子等有血缘关系的进程之间也可以通过mmap建立的映射区来完成数据通信。但相应的要在创建映射区时候指定对应的标志位参数flags: \qquadMAP_PRIVATE父子进程各自独占映射区MAP_SHARED父子进程共享映射区。
2.mmap匿名通信
\qquad所谓mmap匿名通信就是不借助中间文件创建mmap映射区。
3.举例
#includestdio.h
#includesys/types.h
#includesys/stat.h
#includefcntl.h
#includestdlib.h
#includeerrno.h
#includestring.h
#includesys/mman.h
#includeunistd.h
#include sys/types.h
#include sys/wait.h
int main()
{//1.创建父子共享映射区int* p;p mmap(NULL,100,PROT_READ|PROT_WRITE,MAP_SHARED|MAP_ANON,-1,0);if(pMAP_FAILED){perror(mmap fail!);exit(1);}//2.创建子进程int fork_fd;fork_fd fork();if(fork_fd-1){perror(fork fail!);exit(1);}else if(fork_fd0){printf(子进程已经被创建!\n);*p 1000;printf(i am child,*p%d\n,*p);}else if(fork_fd0){sleep(2);int wait_fd;wait_fd wait(NULL);if(wait_fd-1){perror(wait fail!);exit(1);}printf(父进程已经被创建!\n);printf(i am parent,*p%d\n,*p);}//3.关闭映射区int close_fd;close_fd munmap(p,100);if(close_fd-1){perror(munmap fail!);exit(1);}return 0;
}