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

FreeBSD Manual Pages

  
 
  

home | help
std::filesystem::is_empty(3)  C++ Standard Libary std::filesystem::is_empty(3)

NAME
       std::filesystem::is_empty - std::filesystem::is_empty

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

	  Checks whether the given path	refers to an empty file	or directory.

Parameters
	  p  - path to examine
	  ec - error code to modify in case of error

Return value
	  true	if  the	 path indicated	by p refers to an empty	file or	direc-
       tory, false
	  otherwise. The non-throwing overload returns false if	an  error  oc-
       curs.

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 <cstdio>
	#include <filesystem>
	#include <fstream>
	#include <iostream>

	int main()
	{
	    namespace fs = std::filesystem;

	    const fs::path tmp_dir{fs::temp_directory_path()};
	    std::cout << std::boolalpha
		      << "Temp dir: " << tmp_dir << '\n'
		      << "is_empty(): "	<< fs::is_empty(tmp_dir) << '\n';

	    const fs::path tmp_name{tmp_dir / std::tmpnam(nullptr)};
	    std::cout << "Temp file: " << tmp_name << '\n';

	    std::ofstream file{tmp_name.string()};
	    std::cout << "is_empty(): "	<< fs::is_empty(tmp_name) << '\n';
	    file << "cppreference.com";
	    file.flush();
	    std::cout << "is_empty(): "	<< fs::is_empty(tmp_name) << '\n'
		      << "file_size(): " << fs::file_size(tmp_name) << '\n';
	    file.close();
	    fs::remove(tmp_name);
	}

Possible output:
	Temp dir: "/tmp"
	is_empty(): false
	Temp file: "/tmp/fileCqd9DM"
	is_empty(): true
	is_empty(): false
	file_size(): 16

	  Defect reports

	  The following	behavior-changing defect reports were applied retroac-
       tively to
	  previously published C++ standards.

	     DR	      Applied	 to		    Behavior	as   published
       Correct behavior
	  LWG 3013 C++17      error_code  overload  marked  noexcept  but  can
       noexcept	removed
			      allocate memory

See also
	  status	 determines file attributes
	  symlink_status determines file attributes, checking the symlink tar-
       get
	  (C++17)	 (function)
	  (C++17)
	  exists	  checks  whether  path	refers to existing file	system
       object
	  (C++17)	 (function)

http://cppreference.com		  2024.06.10	  std::filesystem::is_empty(3)

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

home | help