每个进程都有一个当前工作目录,此目录是搜索所有相对路径名的起点(不以斜线开始的路径名为相对路径名)。

当用户登录到UNIX系统时,其当前工作目录通常是口令文件(/etc/passwd)中该用户登录项的第六个字段——用户的起始目录。

当前工作目录是进程的一个属性,起始目录则是登录名的一个属性。

进程调用chdir或fchdir函数可以更改当前工作目录。

#include <unistd.h>

int chdir(const char* pathname);
int fchdir(int fd);

因为内核必须维护当前工作目录的信息,所以我们应能获取其当前值。

遗憾的是,内核为每个进程只保存指向该目录v节点的指针等目录本身的信息,并不保存该目录的完整路径名。

当一个应用程序需要在文件系统中返回到它的工作出发点时,getcwd函数是有用的。

在更换工作目录之前,我们可以调用getcwd函数先将其保存起来。在完成了处理后,就可将所保存的原工作目录路径名作为调用参数传送给chdir,这样就返回到了文件系统中的出发点。

results matching ""

    No results matching ""