Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

creat(2)

unlink(2)

fopen(3)

malloc(3)

mktemp(3)

tmpfile(3)



  tmpnam(3)                           CLIX                           tmpnam(3)



  NAME

    tmpnam, tempnam - Creates a name for a temporary file

  LIBRARY

    Standard C Library (libc.a)

  SYNOPSIS

    #include <stdio.h>

    char *tmpnam(
      char *string );

    char *tempnam(
      char *dir ,
      char *pfx );

  PARAMETERS

    string   Points to a name string.

    dir      Points to a directory.

    pfx      Points to a string to use as a file prefix.

  DESCRIPTION

    These functions generate filenames that can safely be used for a temporary
    file.

    The tmpnam() function always generates a filename using the path-prefix
    defined as P_tmpdir in the <stdio.h> header file.  If string is NULL,
    tmpnam() leaves its result in an internal static area and returns a
    pointer to that area.  The next call to tmpnam() will destroy the contents
    of the area.  If string is not it is assumed to be the address of an array
    of at least L_tmpnam bytes, where L_tmpnam is a constant defined in
    stdio.h; tmpnam() places its result in that array and returns string.

    The tempnam() function allows the user to control the choice of a
    directory.  The argument dir points to the name of the directory in which
    the file is to be created.  If dir is or points to a string that is not a
    name for an appropriate directory, the path-prefix defined as P_tmpdir in
    the <stdio.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 pfx argument for this.



  2/94 - Intergraph Corporation                                              1






  tmpnam(3)                           CLIX                           tmpnam(3)



    This argument may be or point to a string of up to five characters to be
    used as the first few characters of the temporary filename.

    The tempnam() function uses malloc() to get space for the constructed
    filename, and returns a pointer to this area.  Thus, any pointer value
    returned from tempnam() may serve as an argument to free() [see malloc()].
    If tempnam() cannot return the expected result for any reason, that is,
    malloc() failed, or none of the above mentioned attempts to find an
    appropriate directory was successful, a pointer will be returned.

    If called more than 17,576 times in a single process, these functions will
    start recycling previously used names.

    Between the time a filename 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
    mktemp() and the filenames are chosen to render duplication by other means
    unlikely.

  NOTES

    These functions generate a different filename each time they are called.

    Files created using these functions and either fopen() or creat() 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 unlink() to remove the file when its use is ended.

  RETURN VALUES

    See the DESCRIPTION.

  RELATED INFORMATION

    Functions:  creat(2), unlink(2), fopen(3), malloc(3), mktemp(3),
    tmpfile(3)


















  2                                              Intergraph Corporation - 2/94




Typewritten Software • bear@typewritten.org • Edmonds, WA 98026