第四章 进程(5)进程的当前驱动器和目录

 

5、进程的当前驱动器和目录

当不提供全路径名时,Windows的各个函数就会在当前驱动器的当前目录中查找文件和目录。

系统将在内部保持对进程的当前驱动器和目录的跟踪。 由于该信息是按每个进程来维护的,因此改变当前驱动器或目录的进程中的线程,就可以为该进程中的所有线程改变这些信息。通过调用下面两个函数,线程能够获得和设置它的进程的当前驱动器和目录:

DWORD GetCurrentDirectory(DWORD cchCurDir, PTSTR pszCurDir);

BOOL SetCurrentDirectory(PCTSTR pszCurDir);

  1. 进程的当前目录

系统将对进程的当前驱动器和目录保持跟踪,但是它不跟踪每个驱动器的当前目录。

A: 可以使用C运行期函数_ chdir,而不是使用SetCurrentDirectory函数来变更当前目录。_ chdir函数从内部调用SetCurrentDirectory,但是_chdir 也能够添加或修改该环境变量,这样,不同驱动器的当前目录就可以保留。

B: 子进程的环境块不会自动继承父进程的当前目录。相反,子进程的当前目录将默认为每个驱动器的根目录。如果想要让子进程继承父进程的当前目录,该父进程必须创建这些驱动器名的环境变量。并在生成子进程前将它们添加给环境块。通过调用GetFullPathName函数父进程可以获得它的当前目录:

DWORD GetFullPathName(PCTSTR pszFile, DWORD cchPath,

PTSRT pszPath, PTSTR *ppszFilePart)

C: 进程的环境变量必须始终按字母顺序来排序。因此驱动器名的环境变量通常必须置于环境块的开始处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值