我想在C ++中执行shell命令,最后我想获取已执行进程的当前工作目录。
例如我执行命令cd C:\
然后在命令的最后我想获取目录C:\
并将其存储在变量中。
我尝试的是pipe = _popen(cmd, "r")
来执行命令,但是在命令结束时,即使还没有调用_pclose(pipe)
,当我打电话给_getcwd(NULL, 0)
时,我得到了正在运行的C ++程序的cwd,而不是来自_popen
的改变后的cwd。
有谁知道,我怎么能做到这一点?
答案 0 :(得分:-1)
我找到了解决方案:
我正在使用CreateProcess()
创建一个新的“cmd.exe”进程,并在创建的进程中注入一段汇编代码。
http://forum.codecall.net/topic/61271-how-to-get-current-directory-of-another-process/
我将它与sample from msdn结合起来,用于重定向子进程的stdin和stdout。