返回值

成功时,返回零。如果出错,则返回-1,并正确设置errno。

出版信息

这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/

说明

chdir()将调用进程的当前工作目录更改为path中指定的目录。

fchdir()与chdir()相同;唯一的区别是目录以打开文件描述符的形式给出。

另外参见

chroot(2),getcwd(3),path_resolution(7)

语法

#包括

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

glibc的功能测试宏要求(请参阅feature_test_macros(7)):

fchdir():

_XOPEN_SOURCE>= 500 || / *自glibc 2.12起:* / _POSIX_C_SOURCE>= 200809L || / * Glibc到并包括2.19:* / _BSD_SOURCE

遵循规范

POSIX.1-2001,POSIX.1-2008,SVr4、4.4BSD。

名称

chdir,fchdir-更改工作目录

CHDIR - Linux手册页

Linux程序员手册 第2部分
更新日期: 2019-08-02

备注

当前工作目录是解释相对路径名(不是以aq / aq开头的路径名)的起点。

通过fork(2)创建的子进程继承其父级的当前工作目录。 execve(2)使当前工作目录保持不变。

错误说明

根据文件系统,可能会返回其他错误。 chdir()的更常见的错误如下所示:

EACCES
路径之一的搜索权限被拒绝。 (另请参见path_resolution(7)。)
EFAULT
路径点超出您可访问的地址空间。
EIO
发生I / O错误。
ELOOP
在解析路径中遇到太多符号链接。
ENAMETOOLONG
路径太长。
ENOENT
在path中指定的目录不存在。
ENOMEM
内核内存不足。
ENOTDIR
路径的组成部分不是目录。

下面列出了fchdir()的一般错误:

EACCES
在fd上打开的目录上的搜索权限被拒绝。
EBADF
fd不是有效的文件描述符。
ENOTDIR
fd不引用目录。
日期:2019-08-20 17:58:36 来源:oir作者:oir