【发布时间】:2011-12-01 11:32:52
【问题描述】:
我需要从我在 Solaris 中用 C 语言编写的共享库中将信息附加到给定文件中。以共享方式打开文件进行写入的最安全方法是什么?作为一个共享库,我假设两个实例尝试同时写入文件是有风险的。
提前致谢
【问题讨论】:
标签: c gcc file-io shared-libraries solaris
我需要从我在 Solaris 中用 C 语言编写的共享库中将信息附加到给定文件中。以共享方式打开文件进行写入的最安全方法是什么?作为一个共享库,我假设两个实例尝试同时写入文件是有风险的。
提前致谢
【问题讨论】:
标签: c gcc file-io shared-libraries solaris
两个进程写入同一个文件,迟早会导致文件乱码。如果您可以访问库(您似乎可以访问)和应用程序,那么您可以使用 flock 调用保护对文件的所有写入。
【讨论】:
fwrite 缓冲数据。为了完全安全,您应该在每次写入调用后使用fflush 或确保文件描述符处于行缓冲区模式。