程序监控程序的读/写路径?
我正在尝试为大学项目制作一个程序,但我对此感到困惑:
如何监控程序写入或读取的文件?
我希望得到他们的路径名。
为了使问题更清楚,这是一个例子:
考虑我们希望监视的程序是a.exe,并且a.exe首先打开一个名为“a1”的文件,该文件与a.exe位于同一文件夹中,然后打开另一个名为“a2”的文件。
程序必须给出“a1”和“a2”文件的相对或绝对路径,而不管它们是否为读/写打开。
我如何在C ++中实现它?
编辑:是否可以将a1和a2文件的调用转移到另一个路径?
EDIT2:好的,让我这样说吧:我已经将firefox.exe从C: program files移动到D:,现在当我运行firefox.exe它不会工作因为它适用于C中的许多文件: program files,firefox.exe将使用相对路径来访问文件。我打算做的是捕获firefox.exe工作的文件的调用,然后将调用定向到程序文件文件夹。 Plz让我知道我是否已经明确了......
没有找到相关结果
已邀请:
2 个回复
浩挎
悍蕾驮苇袜
,
,
等,则可以使用Linux
(2)工具拦截系统调用并在执行调用之前替换文件名字符串。
是黑魔法,所以除非它是高级课程,否则它可能不是你教授的意图。 (如果下一个讲座是关于编写像
这样的调试器,那么这正是你教授的意图。) 您可以使用的另一种机制,可能更便携,是库或函数的插入 - 您可以在库中的特定函数周围编写小包装器,并通过使用
环境变量加载库(有关详细信息,请参阅
联机帮助页)影响库加载的环境变量),将调用您的函数而不是标准函数。 图书馆介入是灰色魔法;它比ѭ4更好地记录,但仍然很容易搞砸。