TMPNAM(3S) UNIX Programmer's Manual TMPNAM(3S) NAME tmpnam, tempnam - create a name for a temporary file SYNOPSIS #include char *tmpnam (s) char *s; char *tempnam (dir, pfx) char *dir, *pfx; HP-UX COMPATIBILITY Level: HP-UX/NUCLEUS Origin: System V DESCRIPTION These functions generate file names that can safely be used for a temporary file. _T_m_p_n_a_m always generates a file name using the path-prefix defined as P_tmpdir in the <_s_t_d_i_o._h> header file. If _s is NULL, _t_m_p_n_a_m leaves its result in an internal static area and returns a pointer to that area. The next call to _t_m_p_n_a_m will destroy the contents of the area. If _s is not NULL, it is assumed to be the address of an array of at least L_tmpnam bytes, where L_tmpnam is a constant defined in <_s_t_d_i_o._h>; _t_m_p_n_a_m places its result in that array and returns _s. _T_e_m_p_n_a_m allows the user to control the choice of a directory. The argument _d_i_r points to the name of the directory in which the file is to be created. If _d_i_r is NULL or points to a string which is not a name for an appropriate directory, the path-prefix defined as P_tmpdir in the <_s_t_d_i_o._h> header file is used. If that directory is not accessible, /tmp will be used as a last resort. This entire sequence can be up-staged by providing an environment variable TMPDIR in the user's environment, whose value is the name of the desired temporary-file directory. Many applications prefer their temporary files to have certain favorite initial letter sequences in their names. Use the _p_f_x argument for this. This argument may be NULL or point to a string of up to five characters to be used as the first few characters of the temporary-file name. _T_e_m_p_n_a_m uses _m_a_l_l_o_c(3C) to get space for the constructed file name, and returns a pointer to this area. Thus, any pointer value returned from _t_e_m_p_n_a_m may serve as an argument to _f_r_e_e (see _m_a_l_l_o_c(3C)). If _t_e_m_p_n_a_m cannot return the expected result for any reason, i.e. _m_a_l_l_o_c(3C) failed, or none of the above mentioned attempts to find an appropriate directory was successful, a NULL pointer will be returned. NOTES These functions generate a different file name each time they are called. Files created using these functions and either _f_o_p_e_n(3S) or _c_r_e_a_t(2) are temporary only in the sense that they reside in a directory intended for temporary use, and their names are unique. It is the user's responsibility to use _u_n_l_i_n_k(2) to remove the file when its use is ended. SEE ALSO creat(2), unlink(2), fopen(3S), malloc(3C), mktemp(3C), tmpfile(3S). BUGS If called more than 17,576 times in a single process, these functions will start recycling previously used names. 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 _m_k_t_e_m_p, and the file names are chosen so as to render duplication by other means unlikely.