El comando chdir es una función del sistema (llamada al sistema) que se utiliza para cambiar el directorio de trabajo actual. En algunos sistemas, este comando se usa como un alias para el comando de shell cd . chdir cambia el directorio de trabajo actual del proceso de llamada al directorio especificado en ruta.
Sintaxis:
int chdir(const char *path);
Parámetro: aquí, la ruta es la ruta del directorio que el usuario desea convertir en el directorio de trabajo actual.
Valor de retorno: este comando devuelve cero (0) en caso de éxito. -1 se devuelve en caso de error y errno se establece correctamente.
Nota: Se declara en unistd.h
.
Ejemplo 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; }
Producción:
Nota: El programa anterior cambia el directorio de trabajo de un proceso. Pero no cambia el directorio de trabajo del shell actual. Porque cuando el programa se ejecuta en el shell, el shell sigue el mecanismo fork on exec. Por lo tanto, no afecta el shell actual.
Ejemplo 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; }
Producción:
Errores: Puede haber errores que pueden ser devueltos. Estos dependen del sistema de archivos.
- EACCES: Si se deniega el permiso de búsqueda para uno de los componentes de ruta.
- EFAULT: si los puntos de la ruta se encuentran fuera del espacio de direcciones accesible.
- EIO: si se produjo un error de E/S.
- ELOOP: si se encontraron demasiados enlaces simbólicos en la ruta de resolución.
- ENAMETOOLONG: Si el camino es demasiado largo.
- ENOENT: Si el archivo no existe.
- ENOMEM: si no hay suficiente memoria del kernel disponible.
- ENOTDIR: Si el componente de ruta no es un directorio.
Publicación traducida automáticamente
Artículo escrito por Prasoon_Mishra y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA