chdir命令是一个系统函数(系统调用),用于更改当前工作目录。在某些系统上,此命令用作shell命令cd的别名。 chdir将调用进程的当前工作目录更改为path中指定的目录。
句法:
int chdir(const char *path);
参数:这里的路径是用户要创建当前工作目录的目录路径。
返回值:该命令成功返回零(0)。错误时返回-1,并正确设置了errno。
注意:它在unistd.h
声明。
范例1:
#include
// chdir function is declared
// inside this header
#include
int main()
{
char s[100];
// printing current working directory
printf("%s\n", getcwd(s, 100));
// using the command
chdir("..");
// printing current working directory
printf("%s\n", getcwd(s, 100));
// after chdir is executed
return 0;
}
输出:
注意:上面的程序更改了进程的工作目录。但是,它不会更改当前shell的工作目录。因为在外壳中执行程序时,外壳遵循exec机制上的fork。因此,它不会影响当前的shell。
范例2:
#include
#include
// Main Method
int main() {
// changing the current
// working directory(cwd)
// to /usr
if (chdir("/usr") != 0)
perror("chdir() to /usr failed");
// changing the cwd to /tmp
if (chdir("/tmp") != 0)
perror("chdir() to /temp failed");
// there is no /error
// directory in my pc
if (chdir("/error") != 0)
// so chdir will return -1
perror("chdir() to /error failed");
return 0;
}
输出:
错误:可能存在可以返回的错误。这些取决于文件系统。
- EACCES:如果对路径的组成部分之一的搜索许可被拒绝。
- EFAULT:如果路径点位于可访问的地址空间之外。
- EIO:如果发生I / O错误。
- ELOOP:如果在解析路径中遇到太多符号链接。
- ENAMETOOLONG:如果路径太长。
- ENOENT:如果文件不存在。
- ENOMEM:如果没有足够的内核内存可用。
- ENOTDIR:如果path的组成部分不是目录。
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。