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

FreeBSD Manual Pages

  
 
  

home | help
std::filesy..._link_count(3)  C++ Standard Libary std::filesy..._link_count(3)

NAME
       std::filesystem::hard_link_count	- std::filesystem::hard_link_count

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

	  Returns  the	number of hard links for the filesystem	object identi-
       fied by path p.

	  The non-throwing overload returns static_cast<uintmax_t>(-1) on  er-
       rors.

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

Return value
	  The number of	hard links for p.

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()
	{
	    // On a POSIX-style	filesystem, each directory has at least	2 hard
       links:
	    // itself and the special member pathname "."
	    fs::path p = fs::current_path();
	    std::cout << "Number of hard links for current path	is "
		      << fs::hard_link_count(p)	<< '\n';

	    //	Each ".." is a hard link to the	parent directory, so the total
       number
	    // of hard links for any directory is 2 plus number	of direct sub-
       directories
	    p =	fs::current_path() / ".."; // Each dot-dot is a	hard  link  to
       parent
	    std::cout << "Number of hard links for .. is "
		      << fs::hard_link_count(p)	<< '\n';
	}

Possible output:
	Number of hard links for current path is 2
	Number of hard links for .. is 3

See also
	  create_hard_link creates a hard link
	  (C++17)	   (function)
			   returns  the	 number	of hard	links referring	to the
       file to which the
	  hard_link_count  directory entry refers
			   (public member function of  std::filesystem::direc-
       tory_entry)

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

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

home | help