github.com/afumu/libc@v0.0.6/musl/src/stdio/__fopen_rb_ca.c (about) 1 #include "stdio_impl.h" 2 #include <fcntl.h> 3 #include <string.h> 4 5 FILE *__fopen_rb_ca(const char *filename, FILE *f, unsigned char *buf, size_t len) 6 { 7 memset(f, 0, sizeof *f); 8 9 f->fd = sys_open(filename, O_RDONLY|O_CLOEXEC); 10 if (f->fd < 0) return 0; 11 __syscall(SYS_fcntl, f->fd, F_SETFD, FD_CLOEXEC); 12 13 f->flags = F_NOWR | F_PERM; 14 f->buf = buf + UNGET; 15 f->buf_size = len - UNGET; 16 f->read = __stdio_read; 17 f->seek = __stdio_seek; 18 f->close = __stdio_close; 19 f->lock = -1; 20 21 return f; 22 }