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("......
");
    }

    val = chdir(buf); /*return to original directory*/
    if (val == -1) {
        fprintf(stderr, "chdir error.");
        return -1;
    } else {
        printf("current path: %s
", buf);
    }
}

一个进程的当前工作目录(current working directory)定义了该进程解析相对路径名的起点。新进程的当前工作目录继承自其父进程。

chdir()系统调用将调用进程的当前工作目录改变为由pathname指定的相对或绝对路径名(如属于符号链接,还会对其解除引用)。

原文地址:https://www.cnblogs.com/donggongdechen/p/14971541.html