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

FreeBSD Manual Pages


home | help
tmpnam(3S)							    tmpnam(3S)

       tmpnam(), tempnam() - create a name for a temporary file

       and generate file names that can	safely be used for a temporary file.

	      Always generates a file name using the path-prefix defined as
			     in	 the  header  file.   If s is NULL, leaves its
			     result in an internal static area and  returns  a
			     pointer  to that area.  The next call to destroys
			     the contents of the area.	If s is	not  NULL,  it
			     is	 assumed  to  be the address of	an array of at
			     least bytes,  where  is  a	 constant  defined  in
			     places  its  result  in that array	and returns s.
			     For multi-thread applications, if	s  is  a  NULL
			     pointer,  the  operation  is  not performed and a
			     NULL pointer is returned.

	      allows the user to control the choice of a directory.
			     The argument dir points to	the name of the	direc-
			     tory  in which the	file is	to be created.	If dir
			     is	NULL or	points to a  string  that  is  not  an
			     appropriate   directory   name,  the  path-prefix
			     defined as	in the header file is used.   If  that
			     directory	is  not	 accessible, is	used as	a last
			     resort.  This entire sequence can be up-staged by
			     providing	an  environment	variable in the	user's
			     environment, whose	 value	is  the	 name  of  the
			     desired temporary-file directory.

       In  order  to  request  the default behavior for	either or a NULL value
       must be passed in dir and pfx for or in s for If	valid  parameters  are
       not passed in, behavior is undefined.

       Many  applications  are	written	such that temporary files have certain
       initial character sequences in their names.  Use	the  pfx  argument  to
       define  a  given	prefix.	 The argument can be NULL or point to a	string
       of up to	five characters	to be used as the first	characters in the tem-
       porary-file name.

       uses  (see  malloc(3C)) to get space for	the constructed	file name, and
       returns a pointer to this area.	Thus, any pointer value	returned  from
       can  serve  as  an  argument to (see malloc(3C)).  If cannot return the
       expected	result for any reason; i.e., failed, or	none of	the above men-
       tioned attempts to find an appropriate directory	was successful,	a NULL
       pointer is returned.

       and generate a different	file name each time they are called, but start
       recycling  previously  used names if called more	than times in a	single

       Files created using these functions and either or  (see	fopen(3S)  and
       creat(2))  are temporary	only in	the sense that they reside in a	direc-
       tory intended for temporary use,	and their names	are unique.  It	is the
       user's responsibility to	use unlink(2) to remove	the file when it is no
       longer needed.

       Between the time	a file name is created and the file is opened,	it  is
       possible	 for  some  other process to create a file with	the same name.
       This can	never happen if	that other process is using these functions or
       and  the	 file names are	chosen such that duplication by	other means is

       creat(2), unlink(2), malloc(3C),	 mktemp(3C),  fopen(3S),  tmpfile(3S),



Want to link to this manual page? Use this URL:

home | help