标签: windows process structure working-directory
在阅读工作目录以及脚本目录(或包含可执行文件图像的目录)目录的内容时,我开始想知道,Windows如何知道,将哪个目录传递给流程目录,当我启动给定程序时实际上没有指定工作目录时:
我知道我可以使用GetCurrentDir()来检索程序内部的工作目录,但我想知道,Windows是否有任何“内部”结构存储给定进程的工作目录? (如果是的话,是否有关于该结构的任何文件)。
我发现了以下与进程相关的结构,但它们似乎都不包含工作目录属性。
答案 0 :(得分:0)
shell(或启动脚本的程序)调用CreateProcess()函数。 CreateProcess函数具有lpCurrentDirectory参数。 shell(或启动脚本的任何其他程序)隐式设置lpCurrentDirectory参数 (〜不通过脚本的参数)。
CreateProcess()
lpCurrentDirectory
该参数稍后存储在RTL_USER_PROCESS_PARAMETERS结构的未记录的属性中。 msdnLink,docLink
RTL_USER_PROCESS_PARAMETERS
相关的stackoverflow问题: