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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::fclose - std::fclose

Synopsis
	  Defined in header <cstdio>
	  int fclose( std::FILE* stream	);

	  Closes  the  given  file  stream.  Any  unwritten  buffered data are
       flushed to the OS. Any
	  unread buffered data are discarded.

	  Whether or not the operation succeeds, the stream is no longer asso-
       ciated with a
	  file,	and the	buffer allocated by std::setbuf	 or  std::setvbuf,  if
       any, is also
	  disassociated	and deallocated	if automatic allocation	was used.

	  The behavior is undefined if the value of the	pointer	stream is used
       after fclose
	  returns.

Parameters
	  stream - the file stream to close

Return value
	  0 on success,	EOF otherwise

Example
       // Run this code

	#include <cstdio>
	#include <cstdlib>

	int main()
	{
	    int	is_ok =	EXIT_FAILURE;
	    FILE* fp = std::fopen("/tmp/test.txt", "w+");
	    if(!fp) {
		std::perror("File opening failed");
		return is_ok;
	    }

	    int	c; // note: int, not char, required to handle EOF
	    while ((c =	std::fgetc(fp))	!= EOF)	{ // standard C	I/O file read-
       ing loop
	       std::putchar(c);
	    }

	    if (std::ferror(fp)) {
		std::puts("I/O error when reading");
	    } else if (std::feof(fp)) {
		std::puts("End of file reached successfully");
		is_ok =	EXIT_SUCCESS;
	    }

	    std::fclose(fp);
	    return is_ok;
	}

Output:
	End of file reached successfully

See also
	  fopen	  opens	a file
		  (function)
	  freopen open an existing stream with a different name
		  (function)
	  close	  flushes the put area buffer and closes the associated	file
		  (public member function of std::basic_filebuf<CharT,Traits>)

http://cppreference.com		  2022.07.31			std::fclose(3)

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

home | help