OLD | NEW |
1 #include <stdio.h> | 1 #include <stdio.h> |
2 #include <fcntl.h> | 2 #include <fcntl.h> |
3 #include "stdio_impl.h" | 3 #include "stdio_impl.h" |
4 | 4 |
5 #define MAXTRIES 100 | 5 #define MAXTRIES 100 |
6 | 6 |
7 char *__randname(char *); | 7 char* __randname(char*); |
8 | 8 |
9 FILE *tmpfile(void) | 9 FILE* tmpfile(void) { |
10 { | 10 char s[] = "/tmp/tmpfile_XXXXXX"; |
11 » char s[] = "/tmp/tmpfile_XXXXXX"; | 11 int fd; |
12 » int fd; | 12 FILE* f; |
13 » FILE *f; | 13 int try |
14 » int try; | 14 ; |
15 » for (try=0; try<MAXTRIES; try++) { | 15 for (try = 0; try < MAXTRIES; try ++) { |
16 » » __randname(s+13); | 16 __randname(s + 13); |
17 » » fd = sys_open(s, O_RDWR|O_CREAT|O_EXCL, 0600); | 17 fd = sys_open(s, O_RDWR | O_CREAT | O_EXCL, 0600); |
18 » » if (fd >= 0) { | 18 if (fd >= 0) { |
19 #ifdef SYS_unlink | 19 #ifdef SYS_unlink |
20 » » » __syscall(SYS_unlink, s); | 20 __syscall(SYS_unlink, s); |
21 #else | 21 #else |
22 » » » __syscall(SYS_unlinkat, AT_FDCWD, s, 0); | 22 __syscall(SYS_unlinkat, AT_FDCWD, s, 0); |
23 #endif | 23 #endif |
24 » » » f = __fdopen(fd, "w+"); | 24 f = __fdopen(fd, "w+"); |
25 » » » if (!f) __syscall(SYS_close, fd); | 25 if (!f) |
26 » » » return f; | 26 __syscall(SYS_close, fd); |
27 » » } | 27 return f; |
28 » } | 28 } |
29 » return 0; | 29 } |
| 30 return 0; |
30 } | 31 } |
31 | 32 |
32 LFS64(tmpfile); | 33 LFS64(tmpfile); |
OLD | NEW |