13 int writeall(FH fd
,const u8
*data
,size_t len
)
17 wrote
= write(fd
,data
,len
);
19 if (errno
== EAGAIN
|| errno
== EWOULDBLOCK
|| errno
== EINTR
)
23 len
-= (size_t) wrote
;
29 FH
createfile(const char *path
,int secret
)
33 fd
= open(path
,O_WRONLY
| O_CREAT
| O_TRUNC
,secret
? 0600 : 0666);
57 int createdir(const char *path
,int secret
)
59 return mkdir(path
,secret
? 0700 : 0777);
64 int writeall(FH fd
,const u8
*data
,size_t len
)
69 success
= WriteFile(fd
,data
,
70 len
<= (DWORD
)-1 ? (DWORD
)len
: (DWORD
)-1,&wrote
,0);
82 FH
createfile(const char *path
,int secret
)
84 // XXX no support for non-ascii chars
85 // XXX don't know how to handle secret argument
87 return CreateFileA(path
,GENERIC_WRITE
,0,0,CREATE_ALWAYS
,0,0);
92 return CloseHandle(fd
) ? 0 : -1;
95 int createdir(const char *path
,int secret
)
97 // XXX don't know how to handle secret argument
98 return CreateDirectoryA(path
,0) ? 0 : -1;
103 int writetofile(const char *path
,const u8
*data
,size_t len
,int secret
)
105 FH fd
= createfile(path
,secret
);
106 int wret
= writeall(fd
,data
,len
);
107 int cret
= closefile(fd
);