Namespaces
Variants

std::experimental::filesystem:: current_path

From cppreference.net
Определено в заголовке <experimental/filesystem>
path current_path ( ) ;
(1) (filesystem TS)
path current_path ( error_code & ec ) ;
(2) (filesystem TS)
void current_path ( const path & p ) ;
(3) (filesystem TS)
void current_path ( const path & p, error_code & ec ) ;
(4) (filesystem TS)

Возвращает или изменяет текущий путь.

1,2) Возвращает абсолютный путь текущей рабочей директории, полученный как если бы с помощью POSIX getcwd . (2) возвращает path ( ) при возникновении ошибки.
3,4) Изменяет текущую рабочую директорию на p , как при использовании POSIX chdir .

Содержание

Параметры

p - путь для изменения текущей рабочей директории
ec - выходной параметр для сообщения об ошибках в непорождающих исключения перегрузках

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

1,2) Возвращает текущую рабочую директорию.
3,4) (нет)

Исключения

1,2) Перегрузка, не принимающая параметр error_code & , выбрасывает исключение filesystem_error при ошибках в базовом API ОС, конструируемое с кодом ошибки ОС в качестве аргумента error code. std:: bad_alloc может быть выброшено при неудачном выделении памяти. Перегрузка, принимающая параметр error_code & , устанавливает его в код ошибки API ОС при сбое вызова API ОС и выполняет ec. clear ( ) при отсутствии ошибок. Данная перегрузка имеет
noexcept спецификацию:
noexcept
3,4) Перегрузка, не принимающая параметр error_code & , выбрасывает исключение filesystem_error при ошибках базового API ОС, конструируемое с p в качестве первого аргумента и кодом ошибки ОС в качестве аргумента error code. std:: bad_alloc может быть выброшено при неудачном выделении памяти. Перегрузка, принимающая параметр error_code & , устанавливает его в код ошибки API ОС при сбое вызова API ОС и выполняет ec. clear ( ) при отсутствии ошибок. Данная перегрузка имеет
noexcept спецификацию:
noexcept

Примечания

Текущая рабочая директория - это каталог, который используется в качестве начальной точки при разрешении относительных путей. Единая текущая рабочая директория связана со всем процессом.

Текущий рабочий каталог представляет собой опасное глобальное состояние программы. Поведение различных функций, связанных с вводом/выводом файлов, зависит от значения текущего пути. Текущий путь может быть неожиданно изменен любым компонентом программы, включая различные внешние библиотеки или другие потоки выполнения.

Смотрите также