Chdir in C Language With Examples
Chdir in C Language With Examples
The chdir command is a system function (system call) which is used to change the current working directory. On some systems, this command
is used as an alias for the shell command cd. chdir changes the current working directory of the calling process to the directory speci ed in
path.
Syntax:
Parameter: Here, the path is the Directory path which the user want to make the current working directory.
Return Value: This command returns zero (0) on success. -1 is returned on an error and errno is set appropriately.
Example 1:
#include<stdio.h>
// chdir function is declared
// inside this header
#include<unistd.h>
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;
}
Output:
Note:The above program changes the working directory of a process. But, it doesn’t change the working directory of current shell. Because
when the program is executed in the shell, the shell follows fork on exec mechanism. So, it doesn’t affect the current shell.
Example 2:
#include <unistd.h>
#include <stdio.h>
// 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;
}
Output:
Errors: There can be errors which can be returned. These depend on the lesystem.
EACCES: If the search permission is denied for one of the components of path.
EFAULT: If the path points lie outside the accessible address space.
EIO: If there is an I/O error occurred.
ELOOP: If there are too many symbolic links were encountered in the resolving path.
ENAMETOOLONG: If the path is too long.
ENOENT: If the le does not exist.
ENOMEM: If there is insu cient kernel memory is available.
ENOTDIR: If the component of path is not a directory.