DOC: tmpnam() Operation Does Not Change If P_tmpdir Modified (46131)



The information in this article applies to:

  • The C Run-Time (CRT), when used with:
    • Microsoft Visual C++ for Windows, 16-bit edition 1.0
    • Microsoft Visual C++ for Windows, 16-bit edition 1.5
    • Microsoft Visual C++, 32-bit Editions 1.0
    • Microsoft Visual C++, 32-bit Editions 2.0
    • Microsoft Visual C++, 32-bit Editions 4.0
    • Microsoft Visual C++, 32-bit Editions 4.1
    • Microsoft Visual C++, 32-bit Editions 5.0
    • Microsoft Visual C++, 32-bit Editions 6.0

This article was previously published under Q46131

SUMMARY

In Microsoft C, the documentation for the functions tmpnam(), tempnam() and _tempnam() states that under certain conditions they create a name that consists of the path prefix defined by the P_tmpdir entry in STDIO.H. This is ambiguous. A better way of stating this is that they create a name that consists of a path prefix to the root of the current drive; this is also what P_tmpdir is defined as. However, P_tmpdir is defined as the root directory on the default drive, which is where the created name would reside. However, any modification of P_tmpdir in STDIO.H does not change the filename that is created.

The documentation states that changing the definition of P_tmpdir or L_tmpnam does not change the operation of tmpnam(). Nor does it change the operation of tempnam() or _tempnam(). These two defines are provided only for XENIX/UNIX portability. The three functions tmpnam(), tempnam() and _tempnam() do not make use of these two defines.

Modification Type:MinorLast Reviewed:7/5/2005
Keywords:kbdocerr kbdocfix KB46131