diff options
Diffstat (limited to 'src/lib9')
-rw-r--r-- | src/lib9/opentemp.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/lib9/opentemp.c b/src/lib9/opentemp.c index f90bf771..9d4e2d07 100644 --- a/src/lib9/opentemp.c +++ b/src/lib9/opentemp.c @@ -2,14 +2,19 @@ #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; + if((fd1 = open(template, mode)) < 0){ + remove(template); + close(fd); + return -1; + } + close(fd); + return fd1; } |