openat.c 392 B

1234567891011121314151617181920
  1. #include <fcntl.h>
  2. #include <stdarg.h>
  3. #include "syscall.h"
  4. #include "libc.h"
  5. int openat(int fd, const char *filename, int flags, ...)
  6. {
  7. mode_t mode = 0;
  8. if ((flags & O_CREAT) || (flags & O_TMPFILE) == O_TMPFILE) {
  9. va_list ap;
  10. va_start(ap, flags);
  11. mode = va_arg(ap, mode_t);
  12. va_end(ap);
  13. }
  14. return syscall_cp(SYS_openat, fd, filename, flags|O_LARGEFILE, mode);
  15. }
  16. LFS64(openat);