[英]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.