繁体   English   中英

如何打开文件并将其锁定在C中?

[英]How to open a file and lock it in C?

如果我使用以下代码打开文件:

FILE *file = fopen("D:\\1.mp4", "rb");

这不会锁定文件,因此例如,我可以使用记事本打开该文件并写入文件!

因此,有什么方法可以确保不允许其他应用程序写入此文件,还是应该使用WinAPI来完成此操作?

您要使用的Windows功能是“共享模式”。 您可以使用_fsopen函数进行设置。 要拒绝写访问,请使用_SH_DENYWR作为第三个参数。

在C语言中,显然没有办法做到这一点,尽管POSIX有一些办法可以做到这一点。 在这里查看详细信息。

在WINAPI中,使用CreateFile相当简单(但是最终得到的是Windows句柄,而不是FILE指针):

HANDLE hFile = CreateFile("D:\\1.mp4", GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM