Header File
stdio.h
Category
Input/output Routines
Prototype
char *_tempnam(char *dir, char *prefix)
wchar_t *_wtempnam(wchar_t *dir, wchar_t *prefix)
Description
Creates a unique file name in specified directory.
The _tempnam function accepts single-byte or multibyte string arguments.
The _tempnam function creates a unique file name in arbitrary directories. The unique file is not actually created; _tempnam only verifies that it does not currently exist. It attempts to use the following directories, in the order shown, when creating the file name:
The prefix argument specifies the first part of the file name; it cannot be longer than 5 characters, and cannot contain a period (.). A unique file name is created by concatenating the directory name, the prefix, and 6 unique characters. Space for the resulting file name is allocated with malloc; when this file name is no longer needed, the caller should call free to free it.
If you do create a temporary file using the name constructed by _tempnam, it is your responsibility to delete the file name (for example, with a call to remove). It is not deleted automatically. (tmpfile does delete the file name.)
Return Value
If _tempnam is successful, it returns a pointer to the unique temporary file name, which the caller can pass to free when it is no longer needed. Otherwise, if _tempnam cannot create a unique file name, it returns NULL.
Example
#include <stdio.h> #include <stdlib.h> void main(void) { FILE *stream; int i; char *name; for (i = 1; i <= 10; i++) { if ((name = tempnam("\\tmp","wow")) == NULL) perror("tempnam couldn't create name"); else { printf("Creating %s\n",name); if ((stream = fopen(name,"wb")) == NULL) perror("Could not open temporary file\n"); else fclose(stream); } free(name); } printf("Warning: temp files not deleted.\n"); }
Portability
|
POSIX |
Win32 |
ANSI C |
ANSI C++ |
_tempnam |
|
+ |
|
|
_wtempnam |
|
+ |
|
|
Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
|
What do you think about this topic? Send feedback!
|