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

	  std::uintmax_t   hard_link_count(  const  std::filesystem::path&  p,
       (1) (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
	  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()
	{
	    // 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		  2022.07.31	  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.0>

home | help