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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::filesystem::read_symlink - std::filesystem::read_symlink

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

	  If the path p	refers to a symbolic link, returns a new  path	object
       which refers to
	  the target of	that symbolic link.

	  It is	an error if p does not refer to	a symbolic link.

	  The non-throwing overload returns an empty path on errors.

Parameters
	  p  - path to a symlink
	  ec - out-parameter for error reporting in the	non-throwing overload

Return value
	  The target of	the symlink (which may not necessarily exist).

Exceptions
	  Any  overload	not marked noexcept may	throw std::bad_alloc if	memory
       allocation
	  fails.

	  1) Throws std::filesystem::filesystem_error on underlying OS API er-
       rors, constructed
	  with p as the	first path argument and	the OS error code as the error
       code argument.
	  2) Sets a std::error_code& parameter to the OS API error code	if  an
       OS API call
	  fails, and executes ec.clear() if no errors occur.

Example
       // Run this code

	#include <filesystem>
	#include <iostream>

	namespace fs = std::filesystem;

	int main()
	{
	    for	(fs::path p : {"/usr/bin/gcc", "/bin/cat", "/bin/mouse"})
	    {
		std::cout << p;
		fs::exists(p) ?
		    fs::is_symlink(p) ?
			std::cout << " -> " << fs::read_symlink(p) << '\n' :
			std::cout << " exists but it is	not a symlink\n" :
		    std::cout << " does	not exist\n";
	    }
	}

Possible output:
	"/usr/bin/gcc" -> "gcc-5"
	"/bin/cat" exists but it is not	a symlink
	"/bin/mouse" does not exist

See also
	  is_symlink		    checks  whether  the  argument refers to a
       symbolic	link
	  (C++17)		   (function)
	  create_symlink
	  create_directory_symlink creates a symbolic link
	  (C++17)		   (function)
	  (C++17)
	  copy_symlink		   copies a symbolic link
	  (C++17)		   (function)
	  status		   determines file attributes
	  symlink_status	   determines file  attributes,	 checking  the
       symlink target
	  (C++17)		   (function)
	  (C++17)

http://cppreference.com		  2024.06.10	 std::filesy...read_symlink(3)

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

home | help