Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::filesy...current_path(3) C++ Standard Libarystd::filesy...current_path(3)

NAME
       std::filesystem::current_path - std::filesystem::current_path

Synopsis
	  Defined in header <filesystem>
	  path	 current_path();				   (1)	(since
       C++17)
	  path current_path(  std::error_code&	ec  );		   (2)	(since
       C++17)
	  void	current_path(  const  std::filesystem::path&  p	 ); (3)	(since
       C++17)
	  void current_path(  const  std::filesystem::path&  p,	   (4)	(since
       C++17)
	  std::error_code& ec )	noexcept;

	  Returns or changes the current path.

	  1-2) Returns the absolute path of the	current	working	directory, ob-
       tained as if (in
	  native format) by POSIX getcwd. (2) returns path() if	error occurs.
	  3-4)	Changes	 the  current  working	directory to p,	as if by POSIX
       chdir.

Parameters
	  p  - path to change the current working directory to
	  ec - out-parameter for error reporting  in  the  non-throwing	 over-
       loads.

Return value
	  1-2) Returns the current working directory.
	  3-4) (none).

Exceptions
	  1-2)	The  overload  that does not take a std::error_code& parameter
       throws
	  filesystem::filesystem_error	on  underlying	OS  API	 errors,  con-
       structed	with the OS
	  error	 code  as  the	error  code  argument.	The  overload taking a
       std::error_code&
	  parameter sets it to the OS API error	code if	an OS API call	fails,
       and executes
	  ec.clear()  if no errors occur. Any overload not marked noexcept may
       throw
	  std::bad_alloc if memory allocation fails.
	  3-4) The overload that does not take	a  std::error_code&  parameter
       throws
	  filesystem::filesystem_error	on  underlying	OS  API	 errors,  con-
       structed	with p as the
	  first	path argument and the OS error code as the  error  code	 argu-
       ment. The overload
	  taking a std::error_code& parameter sets it to the OS	API error code
       if an OS	API
	  call fails, and executes ec.clear() if no errors occur. Any overload
       not marked
	  noexcept may throw std::bad_alloc if memory allocation fails.

Notes
	  The  current working directory is the	directory, associated with the
       process,	that is
	  used as the starting location	in pathname  resolution	 for  relative
       paths.

	  The  current path as returned	by many	operating systems is a danger-
       ous global
	  variable. It may be changed unexpectedly by  third-party  or	system
       library functions,
	  or by	another	thread.

Example
       // Run this code

	#include <iostream>
	#include <filesystem>
	namespace fs = std::filesystem;
	int main()
	{
	    std::cout  << "Current path	is " <<	fs::current_path() << '\n'; //
       (1)
	    fs::current_path(fs::temp_directory_path()); // (3)
	    std::cout << "Current path is " << fs::current_path() << '\n';
	}

Possible output:
	Current	path is	"D:/local/ConsoleApplication1"
	Current	path is	"E:/Temp"

See also
	  temp_directory_path returns a	directory suitable for temporary files
	  (C++17)	      (function)

http://cppreference.com		  2022.07.31	 std::filesy...current_path(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::filesystem::current_path&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help