MkTemp
The FSF.MkTemp function is used to create a temporary
file name with the path based on a specified template.
char* WINAPI MkTemp( char *Dest, const char *Prefix );
Parameters
Dest
Pointer to buffer to receive the temporary file name.
It must be large enough to hold the resulting string (the path to
the temporary directory + 12 characters for the name of the
temporary file).
Prefix
Points to a null-terminated prefix string. At most four leading
characters from that string will be used as the filename prefix.
FAR will pad the prefix with zeroes if its length is less than
4 bytes.
If Prefix is
If Prefix is
NULL
or points to an empty string,
the standard prefix "FTMP"
will be used.
Return value
Pointer to Dest containing the temporary file name, or NULL if function
has failed. A possible reason for the failure is that the temporary directory
contains too many files and should be cleaned.
Remarks
- The temporary file name is obtained by concatenating the temporary
directory path (returned by the GetTempPath
Windows API function), the prefix passed to the function and several random hexadecimal digits. The name has the following format: PrefXXXP.PTT
where
Pref - Pref is the 4-character prefix;
XXX - three random hexadecimal digits;
PP - two hexagemical digits from process ID (returned by the GetCurrentProcessIdWindows API function);
TT - two hexagemical digits from thread ID (returned by the GetCurrentThreadIdWindows API function).
- Unlike in FAR 1.70 beta 3, this function does not create the file on the disk; it only generates the name.
- In FAR 1.70 beta 3, this function used only the first three characters of the prefix.
Example
char TempName[NM]; FSF.MkTemp(TempName,NULL); -> "FTMP000D.P50" FSF.MkTemp(TempName,""); -> "FTMP000D.P50" FSF.MkTemp(TempName,"MY"); -> "MY00000D.P50" FSF.MkTemp(TempName,"BaR"); -> "BAR0000D.P50" FSF.MkTemp(TempName,"TstPlugin"); -> "TSTP000D.P50"