python - 为什么 open("file", "w") 不阻塞?
问题描述
我在使用 NTFS 的 Windows 上,我有 2 个进程以写入模式(w
)打开同一个文件。我很惊讶地看到,两者都成功了。我错过了什么吗?我认为写入模式隐式地在句柄上有一个文件锁,直到文件再次打开(除非以共享写入模式打开)?
过程1:
fp = open("file.txt", "w")
time.sleep(10000)
过程2:
fp = open("file.txt", "w")
time.sleep(10000)
解决方案
好吧,您的 open() 函数的实现必须将 FILE_SHARED_WRITE 传递给内核。否则,其中一个调用将返回错误,而不是阻塞。
推荐阅读
- c# - 在移动平台上移动敌人
- javascript - 检查一个单词是否以元音开头?
- sql-server - 如何在数据透视 SQL 查询中将 null 替换为零
- javascript - 如何在溢出时在元素的左侧和右侧水平分割文本?
- windows - 仅将文件复制到第一个子目录
- ios - AVFoundation 添加音频输入使音频播放静音
- vba - 为 AI 训练创建带有相应标签的文档变体
- ios - 修改 Cocoapods 生成的 .xcconfig 文件的脚本
- php - 图像未在数据库中正确更新
- php - Optimised PHP code for multiple input check