file tempfile

Creates a temporary file and returns an open read-write channel to it.

file tempfile ?varName? ?template?

If varName is given, set that variable to the name of the temporary file (otherwise tries to delete the file at the first opportunity). If template is given, use it to guide the filename generated. Template is in form of a file path and may include one or more of the following <directory>, <prefix>, <extension>. Extension must be specified with a leading '.'. The exception is directory by itself. See examples below

This command was introduced by TIP # 210 in Tcl 8.6.


Examples

% # <directory><prefix><extension>
% file tempfile x /tmp/dingo.txt
file5
% set x
/tmp/dingo_TaaRfi.txt
% # <prefix><extension> 
% file tempfile x dingo.txt
file6
% set x
/tmp/dingo_LX7jgP.txt
%# <prefix>
% file tempfile x txt
file9
% set x
/tmp/txt_C41OoS
%# <extension>
% file tempfile x .txt
file10
% set x
/tmp/tcl_F0Y9on.txt
% # Cant use directory by itself as shown below it takes the directory as / and prefix as tmp
% file tempfile x /tmp 
can't create temporary file: permission denied
% 

AMG: How do I make a uniquely-named temporary directory?

aspect: TIP #431 Discussion has some discussion and code on this question.


AMG: Here's how to get comparable functionality in Tcl 8.4:


AMG: The template filename extension is ignored in Windows [1 ]. This is a problem because Windows uses extensions to determine how to "open" files.