2013-03-20 63 views
0

我有打開一個文件(並保持打開狀態),如下一個C++ Windows應用程序:如何讓其他應用程序打開我需要保持打開的文件?

FILE* fp = NULL; 
errno_t result = _wfopen_s(&fp, L"MyRawData.dat", L"wb"); 

這工作得很好,但是當我嘗試和服務是通過FileZilla的文件了它拒絕對文件訪問時,我嘗試下載它(儘管勾選'允許下載可供另一個進程寫入的文件'選項)。

這是我在我的軟件中做錯了什麼或者Filezilla/general windows問題的限制嗎?

+0

這可能是個問題,但是'L'在字符串文字前是什麼意思? – Philipp 2013-03-20 10:47:19

+0

L前綴使字符串成爲wchar_t字符串。 – 2013-03-20 10:54:04

回答

1

從的documentation說功能:

文件由fopen_s_wfopen_s不共享。如果您需要可共享文件,請使用_fsopen_wfsopen以及適當的共享模式常量(例如,用於讀/寫共享的_SH_DENYNO)。

+0

'_SH_DENYWR'是否允許讀訪問? – 2013-03-20 10:52:08

+0

是,請參閱[此處](http://msdn.microsoft.com/zh-cn/library/8f30b0db(v = vs.110).aspx)所有選項 – msam 2013-03-20 10:56:32

相關問題