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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::filesystem::filesystem_error::what	 -   std::filesystem::filesys-
       tem_error::what

Synopsis
	  const	char* what() const noexcept override;  (since C++17)

	  Returns an explanatory byte string. This explanatory string contains
       the explanatory
	  string passed	at the time of construction. Implementations  are  en-
       couraged	to include
	  the pathnames	of path1() and path2() in native format	and the
	  std::system_error::what() string inside the returned string as well.

Parameters
	  (none)

Return value
	  A  C-stye  explanatory  byte	string	that  contains the explanatory
       string passed at	the
	  time of construction.

Example
       // Run this code

	#include <cstdio>
	#include <filesystem>
	#include <iostream>
	#include <string_view>
	namespace fs = std::filesystem;

	void explain(std::string_view note, fs::filesystem_error const&	ex)
	{
	    std::cout << note << " exception:\n"
		      << "what(): " << ex.what() << '\n'
		      << "path1(): " <<	ex.path1() << ", path2(): "
		      << ex.path2() << "\n\n";
	}

	int main()
	{
	    try
	    {
		std::filesystem::rename("/dev",	"/null");
	    }
	    catch(fs::filesystem_error const& ex)
	    {
		explain("fs::rename()",	ex);
	    }

	    for	(auto const path : {"/bool", "/bin/cat", "/bin/mouse"})
		try
		{
		    std::filesystem::create_directory(path);
		}
		catch(fs::filesystem_error const& ex)
		{
		    explain("fs::create_directory()", ex);
		}
	}

Possible output:
	fs::rename() exception:
	what():	filesystem error:  cannot  rename:  Permission	denied	[/dev]
       [/null]
	path1(): "/dev", path2(): "/null"

	fs::create_directory() exception:
	what():	 filesystem  error: cannot create directory: Permission	denied
       [/bool]
	path1(): "/bool", path2(): ""

	fs::create_directory() exception:
	what():	 filesystem  error:  cannot  create  directory:	 File	exists
       [/bin/cat]
	path1(): "/bin/cat", path2(): ""

	fs::create_directory() exception:
	what():	filesystem error: cannot create	directory: Read-only file sys-
       tem [/bin/mouse]
	path1(): "/bin/mouse", path2():	""

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

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

home | help