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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::fread - std::fread

Synopsis
	  Defined in header <cstdio>
	  std::size_t  fread(  void*  buffer,  std::size_t  size,  std::size_t
       count, std::FILE*
	  stream );

	  Reads	up to count objects into the array buffer from the given input
       stream stream
	  as if	by calling std::fgetc size times for each object, and  storing
       the results, in
	  the  order  obtained,	into the successive positions of buffer, which
       is reinterpreted
	  as an	array of unsigned char.	The file position  indicator  for  the
       stream is advanced
	  by the number	of characters read.

	  If the objects are not TriviallyCopyable, the	behavior is undefined.

	  If an	error occurs, the resulting value of the file position indica-
       tor for the
	  stream  is indeterminate. If a partial element is read, its value is
       indeterminate.

Parameters
	  buffer - pointer to the first	object in the array to be read
	  size	 - size	of each	object in bytes
	  count	 - the number of the objects to	be read
	  stream - input file stream to	read from

Return value
	  Number of objects read successfully, which may be less than count if
       an error	or
	  end-of-file condition	occurs.

	  If size or count is zero, fread returns zero and performs  no	 other
       action.

Example
       // Run this code

	#include <iostream>
	#include <cstdio>
	#include <fstream>
	#include <vector>
	int main()
	{
	    // prepare file
	    std::ofstream("test.txt") << 1 << '	' << 2 << '\n';
	    std::FILE* f = std::fopen("test.txt", "r");

	    std::vector<char> buf(4); // char is trivally copyable
	    std::fread(&buf[0],	sizeof buf[0], buf.size(), f);

	    for(char n : buf)
		std::cout << n;

	    std::vector<std::string> buf2; // string is	not trivially copyable
	// this	would result in	undefined behavior
	//    std::fread(&buf2[0], sizeof buf2[0], buf2.size(),	f);
	}

Output:
	1 2

See also
	  scanf	 reads formatted input from stdin, a file stream or a buffer
	  fscanf (function)
	  sscanf
	  fgets	 gets a	character string from a	file stream
		 (function)
	  fwrite writes	to a file
		 (function)

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

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

home | help