0
我有一個C++應用程序的寫入過程,另一個C#應用程序只要文件被更改就連續讀取數據。有沒有辦法在另一個進程正在讀取時寫入文件?
在C++:
FILE *fp = fopen(result_file, "a");
if (fp) {
// Write some thing
fclose(fp);
}
在C#:
private void Init() {
FileSystemWatcher watcher = new FileSystemWatcher(ResultFolder);
watcher.Changed += new FileSystemEventHandler(OnResultChanged);
watcher.EnableRaisingEvents = true;
}
private void OnResultChanged(object sender, FileSystemEventArgs e) {
if (e.ChangeType == WatcherChangeTypes.Changed) {
// Check file ready to read
// Ready all lines
string[] lines = File.ReadAllLines(e.FullPath);
// Process lines
}
}
但有時在C++無法打開讀取文件的代碼,我該如何解決?
P/S:我發現在C#我們有辦法來共享文件的訪問,如下面的命令
File.Open(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)
但在C找不到類似的方式++。