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);

	  std::filesystem::path	 read_symlink(const  std::filesystem::path& p,
       (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
	  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.

Example
       // Run this code

	#include <iostream>
	#include <filesystem>

	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		  2022.07.31	 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.0>

home | help