Windows环境进程间通信(一):共享文件方式
来源:互联网 发布:陌陌网络主播收入 编辑:程序博客网 时间:2024/06/06 09:13
转自:http://www.zxbc.cn/html/20090609/71620.html
共享文件方式
(1)数据发送
数据发送进程为通过Cfile类创建一个共享文件,然后调用write()方法想文件中写入数据,具体代码如下:
#include <Afx.h>#include <stdio.h>#include <string.h>void main(){CString filename = _T("C:\\test.txt"); CFile file;if (file.Open(filename, CFile::modeCreate | CFile::modeWrite | CFile::shareDenyRead)) {char buf[128]={0};strcpy(buf, "I love China very much");file.Write(buf, strlen(buf));file.Close();}else {printf(_T("创建文件失败!")); } }
打开文件后,用write()来写入文件
(2)数据接收数据在接收进程中,通过Cfile类打开以上创建的共享文件,然后调用read()方法读取数据,具体代码如下:
#include <afx.h>#include <string.h>#include <stdio.h>void main() {CFile file; CString filename = _T("C:\\test.txt"); if(file.Open(filename, CFile::modeRead|CFile::shareDenyWrite)==TRUE) {char Buf[100]={0}; file.Read(Buf, 100);printf("从%s中读取100byte,内容为:%s\n", filename, Buf);//file.Close();} else{ printf(_T("打开文件失败!")); }}
注意:
在上述实现中,数据发送方在open()时,传入参数:CFile::shareDenyRead,即不允许其他进程读取该文件
接收方在open()时,传入参数:CFile::shareDenyWrite,即不允许其他进程写入该文件
因此,在进行完读、写操作之后,必须立刻关闭close()文件
尽管这样,仍然存在双方撞车的可能;而且每次都需要打开、关闭文件,从而导致系统开销;
- Windows环境进程间通信(一):共享文件方式
- Windows环境进程间通信(二):共享内存方式
- Linux\Unix IPC进程通信实例分析(一):共享内存通信---文件映射mmap方式
- windows 进程间通信(共享内存)
- windows 进程间通信(共享内存)
- windows 进程间通信(共享内存)
- Windows环境进程间通信(三) 内存映射文件
- Linux环境进程间通信(五): 共享内存(一)
- Windows进程间通信方式
- windows进程间通信方式
- Windows 进程间通信方式
- Windows 进程间通信方式
- Windows 进程间通信方式
- Windows进程间通信方式
- windows进程间通信方式
- 进程间通信方式(一)管道
- 进程间通信方式二十问(一)
- Linux进程间通信方式(一)
- .NET 面试题总结 (附有参考答案) 第3部分
- 基数排序 RadixSort 算法分析
- JAVA读取xml文件
- VC++ Tab Control控件的使用
- eclipse subversion native library not available
- Windows环境进程间通信(一):共享文件方式
- 怕忘记了。记录一下要采购的元件----1
- MySQL存储过程-插入后返回ID
- POJ 2155 二维线段树 书套树
- 关于百度蛛蛛日志分析对SEO的作用
- 软件测试方法汇总
- 异常: The Network Adapter could not establish the connection
- Android环境搭建(XP/Win7)
- Windows环境进程间通信(二):共享内存方式