rsc | 498bb22 | 2004-03-21 14:05:38 +0000 | [diff] [blame] | 1 | #include <u.h> |
| 2 | #include <libc.h> |
| 3 | |
| 4 | int |
Russ Cox | a58a827 | 2008-07-10 11:10:10 -0400 | [diff] [blame] | 5 | opentemp(char *template, int mode) |
rsc | 498bb22 | 2004-03-21 14:05:38 +0000 | [diff] [blame] | 6 | { |
Russ Cox | a58a827 | 2008-07-10 11:10:10 -0400 | [diff] [blame] | 7 | int fd, fd1; |
rsc | 3f23048 | 2004-06-17 21:19:37 +0000 | [diff] [blame] | 8 | |
| 9 | fd = mkstemp(template); |
| 10 | if(fd < 0) |
| 11 | return -1; |
Russ Cox | a58a827 | 2008-07-10 11:10:10 -0400 | [diff] [blame] | 12 | if((fd1 = open(template, mode)) < 0){ |
| 13 | remove(template); |
| 14 | close(fd); |
| 15 | return -1; |
| 16 | } |
| 17 | close(fd); |
| 18 | return fd1; |
rsc | 498bb22 | 2004-03-21 14:05:38 +0000 | [diff] [blame] | 19 | } |
Russ Cox | e960e21 | 2008-07-09 11:53:31 -0400 | [diff] [blame] | 20 | |