当文件被另一个程序写入时,使用记事本等程序读取文件?

时间:2016-01-21 12:31:12

标签: c++ windows file service io

  

当文件被另一个程序写入时,使用记事本等程序读取文件?

我创建了一个连续记录的Windows服务应用程序。

我想检查服务的当前事件而不关闭它。要执行此操作,请在log.txt中打开Notepad,但会收到消息

  

该进程无法访问该文件,因为该文件正被另一个文件使用   过程

如何在不关闭服务的情况下阅读日志文件?关闭服务后,我可以随时检查文件中的每个日志条目。

通过调用fopen_sfprintf来写入文件,如果这应该是有意义的。此外,该服务在C/C++ Windows 10 64-bit上编程,在SCM下运行,默认权限为LocalSystem

1 个答案:

答案 0 :(得分:2)

https://msdn.microsoft.com/en-us/library/z5hh6ee9.aspx然后备注:

由fopen_s和_wfopen_s打开的文件不可共享。如果您要求文件可共享,请使用_fsopen,_wfsopen和相应的共享模式常量 - 例如,_SH_DENYNO用于读/写共享。

这会是一个解决方案吗?