0

我正在尝试在其主线程中从进程外 COM 服务器运行以下代码,但是从未创建任何文件。

我想知道是否有人可以告诉我这是为什么?

FILE *f = fopen("Log.txt", "w");
fputs("Tony", f);
fputs("\n", f);
fclose(f);
4

2 回答 2

2

除了权限问题之外,文件实际创建但您无法找到它的可能性非常大。您没有提供文件的完整路径名(如"c:\\blah\\log.txt"),这意味着它将在 COM 客户端应用程序的当前工作目录中创建。保证与的 COM 服务器所在的目录不同。

您需要指定完整路径。在 Windows 中,这应该是您保证可以写入的目录。使用 SHGetFolderPath() 获取 appdata 文件夹的路径。或者为日志留出一个固定的目录名(不推荐)。

于 2010-07-13T15:36:13.423 回答
0

我认为最可能的原因是 fopen 因访问被拒绝错误而失败。您是否尝试过单步执行代码?诊断此问题的最佳方法是附加调试器并检查 errno 的值。

于 2010-07-13T15:13:15.480 回答