int __openat64_2 (int fd, const char *file, int oflag) { if (__OPEN_NEEDS_MODE (oflag)) __fortify_fail ("invalid openat64 call: O_CREAT or O_TMPFILE without mode"); return __openat64 (fd, file, oflag); }
/* Open FILE with access OFLAG. Interpret relative paths relative to the directory associated with FD. If OFLAG includes O_CREAT or O_TMPFILE, a fourth argument is the file protection. */ int __OPENAT (int fd, const char *file, int oflag, ...) { mode_t mode = 0; if (__OPEN_NEEDS_MODE (oflag)) { va_list arg; va_start (arg, oflag); mode = va_arg (arg, mode_t); va_end (arg); } /* We have to add the O_LARGEFILE flag for openat64. */ #ifdef MORE_OFLAGS oflag |= MORE_OFLAGS; #endif return SYSCALL_CANCEL (openat, fd, file, oflag, mode); }
/* Open FILE with access OFLAG. If O_CREAT or O_TMPFILE is in OFLAG, a third argument is the file protection. */ int __libc_open (const char *file, int oflag, ...) { mode_t mode; io_t port; if (__OPEN_NEEDS_MODE (oflag)) { va_list arg; va_start (arg, oflag); mode = va_arg (arg, mode_t); va_end (arg); } else mode = 0; port = __file_name_lookup (file, oflag, mode); if (port == MACH_PORT_NULL) return -1; return _hurd_intern_fd (port, oflag, 1); }