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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::tmpnam - std::tmpnam

Synopsis
	  Defined in header <cstdio>
	  char*	tmpnam(	char* filename );

	  Creates  a  unique  filename that does not name a currently existing
       file, and stores
	  it in	the character string pointed to	by filename. The  function  is
       capable of
	  generating  up  to  TMP_MAX  of unique filenames, but	some or	all of
       them may	already	be
	  in use, and thus not suitable	return values.

	  std::tmpnam modifies static state and	is not required	to be  thread-
       safe.

Parameters
		     pointer  to  the  character  array	 capable of holding at
       least L_tmpnam
	  filename - bytes, to be used as a result buffer. If a	 null  pointer
       is passed, a
		     pointer to	an internal static buffer is returned.

Return value
	  filename  if filename	was not	a null pointer.	Otherwise a pointer to
       an internal
	  static buffer	is returned. If	no suitable filename can be generated,
       a null pointer
	  is returned.

Notes
	  Although the names generated by std::tmpnam are difficult to	guess,
       it is possible
	  that a file with that	name is	created	by another process between the
       moment
	  std::tmpnam  returns and the moment this program attempts to use the
       returned	name to
	  create a file. The standard  function	 std::tmpfile  and  the	 POSIX
       function	mkstemp	do
	  not  have  this  problem (creating a unique directory	using only the
       standard	C library
	  still	requires the use of tmpnam).

	  POSIX	systems	additionally define the	similarly named	function temp-
       nam, which offers
	  the choice of	a directory (which defaults to the optionally  defined
       macro P_tmpdir).

Example
       // Run this code

	#include <iostream>
	#include <cstdio>
	#include <string>

	int main()
	{
	    std::string	name1 =	std::tmpnam(nullptr);
	    std::cout << "temporary file name: " << name1 << '\n';

	    char name2[L_tmpnam];
	    if (std::tmpnam(name2)) {
		std::cout << "temporary	file name: " <<	name2 << '\n';
	    }
	}

Possible output:
	temporary file name: /tmp/fileDjwifs
	temporary file name: /tmp/fileEv2bfW

See also
	  tmpfile	       creates	and  opens  a temporary, auto-removing
       file
			      (function)
	  temp_directory_path returns a	directory suitable for temporary files
	  (C++17)	      (function)

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

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

home | help