# pm_tmpfile()

Updated: 22 July 2004

## NAME

pm_tmpfile() - create a temporary unnamed file

## SYNOPSIS

    #include <netpbm/pm.h>

    FILE *
    pm_tmpfile(void);

## EXAMPLE

This simple example creates a temporary file, writes "hello world" to it, then reads back and prints those contents.

    #include <netpbm/pm.h>

    FILE * myfileP;

    myfile = pm_tmpfile();

    fprintf(myfile, "hello world\n");

    fseek(myfileP, 0, SEEK_SET);

    fread(buffer, sizeof(buffer), 1, myfileP);

    fprintf(STDOUT, "temp file contains '%s'\n", buffer);

    fclose(myfileP);

## DESCRIPTION

This library function is part of Netpbm.

pm_tmpfile() creates and opens an unnamed temporary file. It is basically the same thing as the standard C library tmpfile() function, except that it uses the TMPFILE environment variable to decide where to create the temporary file. If TMPFILE is not set or is set to something unusable (e.g. too long), pm_tmpfile() falls back to the value of the standard C library symbol P_tmpdir, just like tmpfile().

Unlike tmpfile(), pm_tmpfile() never returns NULL. If it fails, it issues a message to Standard Error and aborts the program, like most libnetpbm routines do.

If you need to refer to the temporary file by name, use pm_make_tmpfile() instead.

## HISTORY

pm_tmpfile() was introduced in Netpbm 10.20 (January 2004).