c - 使用 C 在 Linux 中轮询新文件的目录 - 一旦它出现,我是否需要等到它可以使用?

标签 c file null polling

我编写了一个 C 程序来轮询目录中的文件,但在尝试访问该文件时有时会出错。我想知道我是否需要等待它完成复制或尝试使用它之前?我设置了一个循环来继续加载图像文件,直到该函数不再返回 null:

while (  (image = SDL_LoadBMP(path)) == NULL  )
    printf("image = NULL\n");

最终它不再为空。处理此问题的正确方法是什么?

最佳答案

处理此问题的最佳方法是在创建文件时将其保存在“不可见”目录中。关闭后将其移至假脱机目录。 (重命名()是原子的)。

当然,这假设实际生成文件的过程有一些合作。

顺便说一句:我假设这里是 UNIX。也许在其他平台上可以使用类似的方法。 (更改可见性/可读性文件属性,而不是重命名/移动)

关于c - 使用 C 在 Linux 中轮询新文件的目录 - 一旦它出现,我是否需要等到它可以使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9963854/

相关文章:

c - 对于已设置为 Defined() 结果的宏,期望得到什么值?

file - 通过计算每个文件的哈希值以外的技术在硬盘上查找重复文件

android - 使用微调器时如何从 TextView 中获取文本

c - 直接访问用户空间地址而不是 copy_to_user 是否可行?

c - 为什么我的arduino串口到LCD在26个循环后卡住了?

c# - 如何将 .csv 文件的每一行分隔成一个字符串列表>

c++ - Xcode 4 文件输入/输出,命令行工具 C++

php - Mysql非顺序插入问题

programming-languages - 在语言中不包含 NULL 的含义?

c - 我的链表实现有什么问题?