cd - 对应的系统函数
#include <unistd.h> #include <stdio.h> int main() { enum {PATHMAX = 256}; char buf[PATHMAX]; int val; char *cwd; cwd = getcwd(buf, PATHMAX); /*remember where we are*/ if (cwd == NULL) { fprintf(stderr, "getcwd error."); return -1; } val = chdir("/tmp"); /*go somewhere else*/ if (val == -1) { fprintf(stderr, "chdir error."); return -1; } else { printf("processing in /tmp, "); printf("......\n"); } val = chdir(buf); /*return to original directory*/ if (val == -1) { fprintf(stderr, "chdir error."); return -1; } else { printf("current path: %s\n", buf); } }
一个进程的当前工作目录(current working directory)定义了该进程解析相对路径名的起点。新进程的当前工作目录继承自其父进程。
chdir()系统调用将调用进程的当前工作目录改变为由pathname指定的相对或绝对路径名(如属于符号链接,还会对其解除引用)。