如果我用下面的代碼打開一個文件:如何打開一個文件並將其鎖定在C?
FILE *file = fopen("D:\\1.mp4", "rb");
這不會鎖定文件,因此,例如,我可以使用記事本打開該文件,並寫入了!
那麼有沒有一種方法可以確保沒有其他應用程序被允許寫入這個文件,或者我應該使用WinAPI來完成這個?
如果我用下面的代碼打開一個文件:如何打開一個文件並將其鎖定在C?
FILE *file = fopen("D:\\1.mp4", "rb");
這不會鎖定文件,因此,例如,我可以使用記事本打開該文件,並寫入了!
那麼有沒有一種方法可以確保沒有其他應用程序被允許寫入這個文件,或者我應該使用WinAPI來完成這個?
在C中,顯然沒有辦法做到這一點,雖然POSIX有辦法做到這一點。有關詳細信息,請參閱here。
在WINAPI,這是相當簡單的用CreateFile做(但你最終有一個Windows句柄,而不是一個FILE
指針):
HANDLE hFile = CreateFile("D:\\1.mp4", GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);
您是在尋找[tag:winapi]解決方案還是[tag:c]解決方案? – Amit
@Amit我正在尋找一個C解決方案,但如果沒有,那麼我將使用WinAPI。 – James