chdir()

Изменить текущую рабочую директорию

Прототип:

#include <unistd.h>
int chdir( const char *path );

Аргументы:

path
The new current working directory.

Библиотека:

libc

Описание:

The chdir() function changes the current working directory to path, which can be relative to the current working directory or an absolute path name.

Возвращаемое значение:

0
Успешное завершение.
-1
Возникла ошибка. Код ошибки записан в errno.

Коды ошибок:

EACCES
Search permission is denied for a component of path.
ELOOP
Too many levels of symbolic links or prefixes.
ENAMETOOLONG
The path argument is longer than PATH_MAX, or a pathname component is longer than NAME_MAX.
ENOENT
The specified path doesn't exist, or path is an empty string.
ENOMEM
There wasn't enough memory to allocate a control structure.
ENOSYS
The chdir() function isn't implemented for the filesystem specified in path.
ENOTDIR
A component of path is not a directory.

Примеры:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main( int argc, char* argv[] )
{
if ( argc != 2 )
{
fprintf( stderr, "Use: cd <directory>\n" );
return (EXIT_FAILURE);
}
if ( chdir( argv[1] ) == 0 )
{
printf( "Directory changed to %s\n", argv[1] );
return (EXIT_SUCCESS);
} else {
perror( argv[1] );
return (EXIT_FAILURE);
}
}

Классификация:

POSIX 1003.1

Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Предостережения:

There's only one current working directory per process. In a multithreaded application, any thread calling chdir() will change the current working directory for all threads in that process.

Тематические ссылки:

errno, fchdir(), getcwd(), mkdir(), rmdir()




Предыдущий раздел: Описание API системной библиотеки