C言語システムコール-chdir

chdir

概要

chdirは実効プロセスのカレントディレクトリを変更します。

chdirはパス名を指定します。

openしたファイルディスクリプタで指定する場合には「fchdir」を使用します。


サンプルプログラム


#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

static void
print_cwd(void)
{
    char pathname[BUFSIZ] = {"\0"};
    getcwd(pathname, BUFSIZ);
    fprintf(stdout,"%s\n", pathname);
}

int
main(void)
{
    int rc = 0;
    int fd = 0;

    rc = chdir("/usr/bin");
    if(rc < 0){
        printf("Error: chdir(%d) %s\n", errno, strerror(errno));
        return(-1);
    }
    print_cwd();

    fd = open("/etc", O_RDONLY);
    if(fd < 0){
        printf("Error: open(%d) %s\n", errno, strerror(errno));
        return(-1);
    }
    rc = fchdir(fd);
    if(rc < 0){
        printf("Error: fchdir(%d) %s\n", errno, strerror(errno));
        return(-1);
    }
    print_cwd();

    return(0);
}


関連ページ