openwrite.c (313B)
1 #include "open.h" 2 3 #include <unistd.h> 4 5 int openwrite(const char* path, i32 oflags, mode_t mode, const void* buffer, ssize_t size) { 6 int fd; 7 8 if ((fd = open(path, O_WRONLY | O_CREAT | oflags, mode)) == -1) 9 return -1; 10 11 if (write(fd, buffer, size) != size) { 12 close(fd); 13 return -1; 14 } 15 16 return close(fd); 17 }