aboutsummaryrefslogtreecommitdiff
path: root/src/lib9/opentemp.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib9/opentemp.c')
-rw-r--r--src/lib9/opentemp.c13
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;
}