diff options
Diffstat (limited to 'src/lib9/opentemp.c')
-rw-r--r-- | src/lib9/opentemp.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/lib9/opentemp.c b/src/lib9/opentemp.c index f90bf771..0af154de 100644 --- a/src/lib9/opentemp.c +++ b/src/lib9/opentemp.c @@ -2,14 +2,20 @@ #include <libc.h> int -opentemp(char *template) +opentemp(char *template, int mode) { - int fd; + int fd, fd1; fd = mkstemp(template); if(fd < 0) return -1; - remove(template); - return fd; + /* reopen for mode */ + fd1 = open(template, mode); + if(fd1 < 0){ + close(fd); + remove(template); + return -1; + } + close(fd); + return fd1; } - |