blob: 793c23f5d2485598f9ce72de5c0d3444240ee85f [file] [log] [blame]
Guido van Rossumeee94981991-11-12 15:38:08 +00001# Temporary file name allocation
2
3import posix
4import path
5
6
7# Changeable parameters (by clients!)...
Guido van Rossumeee94981991-11-12 15:38:08 +00008
9tempdir = '/usr/tmp'
10template = '@'
11
Guido van Rossumcff34541992-01-14 18:31:56 +000012# Use environment variable $TMPDIR to override default tempdir.
13
14if posix.environ.has_key('TMPDIR'):
15 # XXX Could check that it's a writable directory...
16 tempdir = posix.environ['TMPDIR']
17
Guido van Rossumeee94981991-11-12 15:38:08 +000018
Guido van Rossum4a3a41f1991-12-26 13:10:50 +000019# Counter for generating unique names
Guido van Rossumeee94981991-11-12 15:38:08 +000020
Guido van Rossum4a3a41f1991-12-26 13:10:50 +000021counter = 0
Guido van Rossumeee94981991-11-12 15:38:08 +000022
23
24# User-callable function
25# XXX Should this have a parameter, like C's mktemp()?
26# XXX Should we instead use the model of Standard C's tempnam()?
27# XXX By all means, avoid a mess with four different functions like C...
28
29def mktemp():
Guido van Rossum4a3a41f1991-12-26 13:10:50 +000030 global counter
Guido van Rossumeee94981991-11-12 15:38:08 +000031 while 1:
Guido van Rossum4a3a41f1991-12-26 13:10:50 +000032 counter = counter+1
33 file = tempdir+'/'+template+`posix.getpid()`+'.'+`counter`
Guido van Rossumeee94981991-11-12 15:38:08 +000034 if not path.exists(file):
35 break
36 return file