在Windows(可能是Unix)中,在(32位)程序中使用chdir()函数不会在程序退出时更改目录.(它在16位Windows程序中执行.)
有人知道如何在Windows 32位程序中执行此操作吗?
嗯...恕我直言,这正是操作系统必须保证不会发生的事情之一.当前目录是一个每进程属性,子进程通常从父进程继承它,但反过来不应该发生(并且它不会发生).为了获得您想要的内容,通常,父级应该主动监视子进程存储新目录的一些信息(消息,文件,共享内存...),然后使用新值调用chdir().据我所知,Windows的cmd.exe没有任何类似的机制.实际上,通过在父进程上使用代码注入tecniques(例如CreateRemoteThread),可以强制它做一些意想不到的事情,但这是一个非常肮脏的技巧,一点也不好.Win16是不同的:所有程序都有一个"msdos"状态,但它是一个限制,而不是一个功能.
| 归档时间: |
|
| 查看次数: |
3071 次 |
| 最近记录: |