代码之家  ›  专栏  ›  技术社区  ›  Jay

fwrite&fclose是否可以从同一文件描述符的两个线程并行调用?

  •  4
  • Jay  · 技术社区  · 14 年前

    fwrite & fclose 从两个线程并行调用同一个文件描述符?

    3 回复  |  直到 14 年前
        1
  •  4
  •   doron    14 年前

    fwrite fclose 操作 FILE 数据结构。因为这是一个更大的数据结构,存储的不仅仅是文件描述符,所以答案是不好的。

    除非确保使用互斥体进行原子操作,否则不要这样做。

        2
  •  9
  •   R.. GitHub STOP HELPING ICE    14 年前

    POSIX要求 FILE 访问是线程安全的,但是 fclose 关闭文件并使指针无效,则无法使用(即,这不仅是规范问题,而且是根本的API问题,永远无法“修复”或使其消失) 当另一个线程可能正在访问 文件

        3
  •  -4
  •   telvin    14 年前

    对于这种情况,您需要定义方法的优先级。 您可以使用“synchronized”来控制这些方法。