Skip to content

posix: add *at calls, e.g. openat(2) and related constants

Christian Kellner requested to merge gicmo/vala:openat into master

Add all the missing *at() calls from POSIX.1-2008:

  • faccessat - int faccessat(int dirfd, const char *pathname, int mode, int flags); unistd.h

  • fchmodat - int fchmodat(int dirfd, const char *pathname, mode_t mode, int flags); sys/stat.h

  • fchownat - int fchownat(int dirfd, const char *pathname, uid_t owner, gid_t group, int flags); unistd.h

  • fstatat - int fstatat(int dirfd, const char *pathname, struct stat *statbuf, int flags); sys/stat.h

  • mkdirat - int mkdirat(int dirfd, const char *pathname, mode_t mode); sys/stat.h

  • mkfifoat - int mkfifoat(int dirfd, const char *pathname, mode_t mode); sys/stat.h

  • mknodat - int mknodat(int dirfd, const char *pathname, mode_t mode, dev_t dev); sys/stat.h

  • linkat - int linkat(int olddirfd, const char *oldpath, int newdirfd, const char *newpath, int flags); | unistd.h

  • openat - int openat(int dirfd, const char *pathname, int flags, mode_t mode);

  • symlinkat - int symlinkat(const char *target, int newdirfd, const char *linkpath); unistd.h

  • readlinkat - ssize_t readlinkat(int dirfd, const char *pathname, char *buf, size_t bufsiz); unistd.h

  • renameat - int renameat(int olddirfd, const char *oldpath, int newdirfd, const char *newpath); stdio.h

  • unlinkat - int unlinkat(int dirfd, const char *pathname, int flags); unistd.h

Constants

  • AT_SYMLINK_NOFOLLOW | fstatat
  • AT_EACCESS | faccessat
  • AT_FDCWD | openat
  • AT_REMOVEDIR | unlinkat
  • AT_SYMLINK_FOLLOW | linkat

Fixes #823 (closed)

Edited by Christian Kellner

Merge request reports