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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::filesystem::space_info - std::filesystem::space_info

Synopsis
	  Defined in header <filesystem>
	  struct space_info {

	  std::uintmax_t capacity;
	  std::uintmax_t free;		  (since C++17)
	  std::uintmax_t available;

	  };

	  Represents  the  filesystem  information  as	determined by filesys-
       tem::space.

Member objects
	  capacity  total size of the filesystem, in bytes
		    (public member object)
	  free	    free space on the filesystem, in bytes
		    (public member object)
		    free space available to a non-privileged process  (may  be
       equal or	less
	  available than free)
		    (public member object)

Non-member functions
	  operator== compares two space_infos
	  (C++20)    (function)

       operator==(std::filesystem::space_info)

	  friend  bool	operator==(  const  space_info&, const space_info& ) =
       (since C++20)
	  default;

	  Checks if capacity, free and available of both arguments  are	 equal
       respectively.

	  This	function  is  not visible to ordinary unqualified or qualified
       lookup, and can
	  only	be  found  by  argument-dependent  lookup  when	 std::filesys-
       tem::space_info is an
	  associated class of the arguments.

	  The != operator is synthesized from operator==.

Example
       // Run this code

	#include <iostream>
	#include <filesystem>
	#include <cstdint>

	void print_space_info(auto const& dirs,	int width = 14)
	{
	    std::cout << std::left;
	    for	(const auto s :	{"Capacity", "Free", "Available", "Dir"})
		std::cout << " " << std::setw(width) <<	s << ' ';
	    std::cout << '\n';
	    std::error_code ec;
	    for	(auto const& dir : dirs) {
		const	 std::filesystem::space_info	si   =	 std::filesys-
       tem::space(dir, ec);
		std::cout
		    <<	"  "  <<  std::setw(width)  <<	 static_cast<std::int-
       max_t>(si.capacity) << '	'
		    <<	 "  "  <<  std::setw(width)  <<	 static_cast<std::int-
       max_t>(si.free) << ' '
		    <<	"  "  <<  std::setw(width)  <<	 static_cast<std::int-
       max_t>(si.available) << ' '
		    << " " << dir << '\n';
	    }
	}

	int main()
	{
	    const auto dirs = {	"/dev/null", "/tmp", "/home", "/null" };
	    print_space_info(dirs);
	}

Possible output:
	 Capacity	 Free		 Available	 Dir
	 8342851584	 8342851584	 8342851584	 /dev/null
	 12884901888	 3045265408	 3045265408	 /tmp
	 250321567744	 37623181312	 25152159744	 /home
	 -1		 -1		 -1		 /null

See also
	  space	  determines available free space on the file system
	  (C++17) (function)

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

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

home | help