home | help
std::experi...stem::space(3)   C++ Standard Libary  std::experi...stem::space(3)

NAME
     std::experimental::filesystem::space - std::experimental::filesystem::space

Synopsis
	Defined in header <experimental/filesystem>
	space_info space( const path& p );			     (filesystem
     TS)
	space_info space( const path& p, error_code& ec ) noexcept;

	Determines  the information about the filesystem on which the pathname p
     is located,
	as if by POSIX statvfs.

	Populates and returns an object of type space_info, set from the members
     of the
	POSIX struct statvfs as follows:

	  * space_info.capacity is set as if by f_blocks * f_frsize.
	  * space_info.free is set to f_bfree * f_frsize.
	  * space_info.available is set to f_bavail * f_frsize.
	  * Any member that could not be determined is set to
	    static_cast<std::uintmax_t>(-1).

	The non-throwing overload sets	all  members  to  static_cast<std::uint-
     max_t>(-1) on
	error.

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

Return value
	The filesystem information (a space_info object).

Exceptions
	The overload that does not take an error_code& parameter throws filesys-
     tem_error on
	underlying  OS	API errors, constructed with p as the first argument and
     the OS error
	code as the error code argument. std::bad_alloc may be thrown if  memory
     allocation
	fails.	The  overload  taking an 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.
     This overload
	has
	noexcept specification:
	noexcept

Notes
	space_info.available may be less than space_info.free.

Example
     // Run this code

      #include <experimental/filesystem>
      #include <iostream>
      namespace fs = std::experimental::filesystem;

      int main()
      {
	  fs::space_info devi = fs::space("/dev/null");
	  fs::space_info tmpi = fs::space("/tmp");

	  std::cout << "	 Capacity	  Free	  Available\n"
		    << "/dev:	" << devi.capacity << "   "
		    << devi.free << "	" << devi.available << '\n'
		    << "/tmp: " << tmpi.capacity << ' '
		    << tmpi.free << ' ' << tmpi.available << '\n';
      }

Possible output:
		Capacity	 Free	 Available
      /dev:   4175114240   4175110144	4175110144
      /tmp: 420651237376 411962273792 390570749952

See also
	space_info information about free and available space on the filesystem
		   (class)

Categories:
	  * Noindexed pages
	  * unconditionally noexcept

Hidden categories:
	  * Pages with unreviewed unconditional noexcept template
	  * Pages with unreviewed noexcept template

http://cppreference.com 	   2024.06.10	    std::experi...stem::space(3)

home | help