因为METATRADER用的是WINDOWS 系统,不像MAC OS,对于文件流的操作,有着一些区别,使用FILEOPEN()函数和其他计算机语言对计算机内的文件操作是一样的,只是METATRADER还残缺部分文件操作功能,不过不重要了,重点说下这几个参数:
FILE_READ:这个单独用,就叫做独占只读,其它程序在这个文件释放之前不可再handle这个文件;
FILE_WRITE:这个单独用,就叫做独占只写,其它程序在这个文件释放之前不可再handle这个文件;
FILE_SHARE_READ:这个不能单独用,要配合FILE_READ或FILE_WRITE,
FILE_SHARE_READ配合FILE_READ,就是众多程序可以一起读(注意:只能读不能写),而且这个程序只能读;
FILE_SHARE_READ配合FILE_WRITE,就是众多程序可以一起读(注意:只能读不能写),但是只有这个程序可以写;
FILE_SHARE_WRITE:这个不能单独用,要配合FILE_READ或FILE_WRITE,
FILE_SHARE_WRITE配合FILE_READ,就是众多程序可以一起写(注意:只能写不能读),但是只有这个程序可以读;
FILE_SHARE_WRITE配合FILE_WRITE,就是众多程序可以一起写(注意:只能写不能读),而且这个程序只能写;
真他妈复杂,其实我们主要实现的功能是C/S模式,即实现一个程序可写,让其它程序都来读取,那应该这样写:
Server端:FILE_WRITE|FILE_SHARE_READ:这个上面已经解释了;
Client端:FILE_READ|FILE_SHARE_READ|FILE_SHARE_WRITE:就是众多程序可以一起读和写(写就是给Server去操作的),而且这个程序只能读。
主要的问题,就是要搞清楚,你读的时候,同时也得允许别人读,也得允许别人写。不能太霸道,不能naive,懂不懂啊。