1. /*fifoserver.c:向FIFO中写入信息*/
2. #include <sys/types.h>
3. #include <sys/stat.h>
4. #include <errno.h>
5. #include <fcntl.h>
6. #define FIFO_SERVER "FIFO4"
7. main(int argc,char** argv)
8. {
9. int fd=0;
10. char w_buf[4096];
11. int real_wnum;
12. memset(w_buf,0,4096);
13. if((mkfifo(FIFO_SERVER,O_CREAT|O_EXCL|0666)<0)&&(errno!=EEXIST))
14. printf("cannot create fifoserver\n");
15. /*此处存在着打开依赖,即若没有读端打开FIFO的话,写端就阻塞在写端*/
16. fd=open(FIFO_SERVER,O_WRONLY);
17. if(fd==-1)
18. printf("open error; no reading process\n");
19. printf("%d\n",fd);
20.
21. real_wnum=write(fd,w_buf,2048);
22. if(real_wnum==-1)
23. printf("write to fifo error; try later\n");
24. else
25. printf("real write num is %d\n",real_wnum);
26. /*往FIFO写入的数据都是原子的,如果没有足够的空间,则会等待,而不是一点一点的写入。*/
27. real_wnum=write(fd,w_buf,4096);
28. if(real_wnum==-1)
29. printf("write to fifo error; try later\n");
30. else
31. printf("real write num is %d\n",real_wnum);
32. }
1. /*fifoclient.c:从FIFO中读出数据*/
2. #include <sys/types.h>
3. #include <sys/stat.h>
4. #include <errno.h>
5. #include <fcntl.h>
6. #define FIFO_SERVER "FIFO4"
7. main(int argc,char** argv)
8. {
9. char r_buf[4096];
10. int fd;
11. int r_size;
12. int ret_size;
13. r_size=atoi(argv[1]);
14. memset(r_buf,0,sizeof(r_buf));
15. fd=open(FIFO_SERVER,O_RDONLY);
16. if(fd==-1)
17. {
18. printf("open %s for read error\n");
19. exit(1);
20. }
21. printf("%d\n",fd);
22.
23. while(1)
24. {
25. ret_size=read(fd,r_buf,r_size);
26. if(ret_size==-1)
27. printf("no data avlaible\n");
28. else
29. printf("real read bytes %d\n",ret_size);
30. sleep(1);
31. }
32. unlink(FIFO_SERVER);
33. }
分享到:
相关推荐
Linux进程间通信之FIFO,适用于任意进程间. 此C文件为FIFO的写端
Linux进程间通信之FIFO,适用于任意两个进程间.此C文件件为读端.
一个简单程序,演示了Linux下的FIFO IPC机制 http://blog.csdn.net/ZhengZhiRen/archive/2010/05/21/5613843.aspx
linux下进程间通信方式之一的fifo读写源程序。
Linux进程通信:命名管道FIFO小结.doc
Demo是实现进程间通信的实例当前大型进程间通信都是以本Demo为例实现的 本代码通过测试无误直接贴过去就能运行Linux下 SYSTEM V
父进程可以往里写子进程可以从里读是用环形队列实现的数据从写端流入从读端流出这样就实现了进程间通信popen函数与pclose函数标准函数库提供了函数它创建一个管
IPC(InterProcess Communication)是各种进程通信方式的统称,主要有下面几种类型: 管道 FIFO(命名管道) 消息队列 信号量 共享空间 套接口 前五种IPC只能用于一台主机内的进程间通信,套接口...
linux系统进程间通信英文版,里面详细介绍了linux环境下常用的进程间通信方式,shared memery, pipes, FIFO, semaphores, message queue, sockets, rpc
Linux给我们提供了丰富的内部进程通信机制,包括共享内存、内存映射文件、先入先出(FIFO)、接口(sockets)以及多种用于同步的标识。在本文中主要讨论一下共享内存和内存映射文件技术。
用于进程间通信fifo测试,用来学习fifo通信机智
主要介绍了Linux 进程通信之FIFO的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
Linux进程间通信(fifo/pipe/mmap)后续将会完成进程间通信(消息队列/信号) 请关注
应用的种种需求,它还创建了许多新的系统机制,其中Qt 所特有的内部进程通信机制尤其 值得一提。本文分析了基于QT 的应用进程之间通信常用的三种机制:QCOP 协议, Signal-Slot 机制和FIFO 机制。给出了各自的使用...
基础概念: 进程与程序区别:进程是程序的一次动态执行过程.进程在内存中运行,程序在磁盘中存储. ...进程的通信 BSD(高校):pipe、fifo、信号 System V:share memory、消息队列、信号灯(ftok) BSD:Socket
linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的。而对Unix发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间通信方面的侧重点有所不同。...
FIFO技术不支持Windows,仅在Linux上可以使用。是属于Python2的版本
Linux进程间通信 一、进程间通信概述 进程通信有如下一些目的: A、数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M字节之间 B、共享数据:多个进程想要操作共享数据,一个进程...