Lines 41-48
Link Here
|
41 |
# define TMP_MAX 238328 |
41 |
# define TMP_MAX 238328 |
42 |
#endif |
42 |
#endif |
43 |
#ifndef __GT_FILE |
43 |
#ifndef __GT_FILE |
44 |
# define __GT_FILE 0 |
44 |
# define __GT_FILE 1 |
45 |
# define __GT_BIGFILE 1 |
|
|
46 |
# define __GT_DIR 2 |
45 |
# define __GT_DIR 2 |
47 |
# define __GT_NOCREATE 3 |
46 |
# define __GT_NOCREATE 3 |
48 |
#endif |
47 |
#endif |
Lines 61-72
Link Here
|
61 |
|
60 |
|
62 |
#if _LIBC |
61 |
#if _LIBC |
63 |
# define struct_stat64 struct stat64 |
62 |
# define struct_stat64 struct stat64 |
64 |
# define small_open __open |
|
|
65 |
# define large_open __open64 |
66 |
#else |
63 |
#else |
67 |
# define struct_stat64 struct stat |
64 |
# define struct_stat64 struct stat |
68 |
# define small_open open |
65 |
# define __open open |
69 |
# define large_open open |
|
|
70 |
# define __gen_tempname gen_tempname |
66 |
# define __gen_tempname gen_tempname |
71 |
# define __getpid getpid |
67 |
# define __getpid getpid |
72 |
# define __gettimeofday gettimeofday |
68 |
# define __gettimeofday gettimeofday |
Lines 172-183
static const char letters[] =
Link Here
|
172 |
at the time of the call. |
168 |
at the time of the call. |
173 |
__GT_FILE: create the file using open(O_CREAT|O_EXCL) |
169 |
__GT_FILE: create the file using open(O_CREAT|O_EXCL) |
174 |
and return a read-write fd. The file is mode 0600. |
170 |
and return a read-write fd. The file is mode 0600. |
175 |
__GT_BIGFILE: same as __GT_FILE but use open64(). |
|
|
176 |
__GT_DIR: create a directory, which will be mode 0700. |
171 |
__GT_DIR: create a directory, which will be mode 0700. |
177 |
|
172 |
|
178 |
We use a clever algorithm to get hard-to-predict names. */ |
173 |
We use a clever algorithm to get hard-to-predict names. */ |
179 |
int |
174 |
int |
180 |
gen_tempname_len (char *tmpl, int kind, size_t x_suffix_len) |
175 |
gen_tempname_len (char *tmpl, int flags, int kind, size_t x_suffix_len) |
181 |
{ |
176 |
{ |
182 |
size_t len; |
177 |
size_t len; |
183 |
char *XXXXXX; |
178 |
char *XXXXXX; |
Lines 230-240
gen_tempname_len (char *tmpl, int kind, size_t x_suffix_len)
Link Here
|
230 |
switch (kind) |
225 |
switch (kind) |
231 |
{ |
226 |
{ |
232 |
case __GT_FILE: |
227 |
case __GT_FILE: |
233 |
fd = small_open (tmpl, O_RDWR | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR); |
228 |
fd = __open (tmpl, |
234 |
break; |
229 |
(flags & ~0777) | O_RDWR | O_CREAT | O_EXCL, |
235 |
|
230 |
S_IRUSR | S_IWUSR); |
236 |
case __GT_BIGFILE: |
|
|
237 |
fd = large_open (tmpl, O_RDWR | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR); |
238 |
break; |
231 |
break; |
239 |
|
232 |
|
240 |
case __GT_DIR: |
233 |
case __GT_DIR: |
Lines 295-301
gen_tempname_len (char *tmpl, int kind, size_t x_suffix_len)
Link Here
|
295 |
} |
288 |
} |
296 |
|
289 |
|
297 |
int |
290 |
int |
298 |
__gen_tempname (char *tmpl, int kind) |
291 |
__gen_tempname (char *tmpl, int flags, int kind) |
299 |
{ |
292 |
{ |
300 |
return gen_tempname_len (tmpl, kind, 6); |
293 |
return gen_tempname_len (tmpl, flags, kind, 6); |
301 |
} |
294 |
} |