#include <sys/unistd.h>

sys/unistd.h

includes: sys/cdefs.h, sys/_types/_posix_vdisable.h, sys/_types/_seek_set.h, machine/_types.h, sys/_types/_size_t.h, sys/_types/_ssize_t.h, _types/_uint64_t.h, _types/_uint32_t.h, Availability.h, machine/_types.h, sys/_types/_size_t.h, sys/_types/_ssize_t.h, sys/_types.h, sys/_types/_uid_t.h, sys/_types/_gid_t.h, Availability.h
54 macros · 10 functions · 1 struct

macro_POSIX_VERSION

#define _POSIX_VERSION 200112L

macro_POSIX2_VERSION

#define _POSIX2_VERSION 200112L

macro_POSIX_THREAD_KEYS_MAX

#define _POSIX_THREAD_KEYS_MAX 128

macroF_OK

access function
#define F_OK 0
test for existence of file

macroX_OK

#define X_OK (1<<0)
test for execute or search permission

macroW_OK

#define W_OK (1<<1)
test for write permission

macroR_OK

#define R_OK (1<<2)
test for read permission

macro_READ_OK

Extended access functions. Note that we depend on these matching the definitions in sys/kauth.h, but with the bits shifted left by 8.
#define _READ_OK (1<<9)
read file data / read directory

macro_WRITE_OK

#define _WRITE_OK (1<<10)
write file data / add file to directory

macro_EXECUTE_OK

#define _EXECUTE_OK (1<<11)
execute file / search in directory

macro_DELETE_OK

#define _DELETE_OK (1<<12)
delete file / delete directory

macro_APPEND_OK

#define _APPEND_OK (1<<13)
append to file / add subdirectory to directory

macro_RMFILE_OK

#define _RMFILE_OK (1<<14)
- / remove file from directory

macro_RATTR_OK

#define _RATTR_OK (1<<15)
read basic attributes

macro_WATTR_OK

#define _WATTR_OK (1<<16)
write basic attributes

macro_REXT_OK

#define _REXT_OK (1<<17)
read extended attributes

macro_WEXT_OK

#define _WEXT_OK (1<<18)
write extended attributes

macro_RPERM_OK

#define _RPERM_OK (1<<19)
read permissions

macro_WPERM_OK

#define _WPERM_OK (1<<20)
write permissions

macro_CHOWN_OK

#define _CHOWN_OK (1<<21)
change ownership

macroL_SET

whence values for lseek(2); renamed by POSIX 1003.1
#define L_SET SEEK_SET

macroL_INCR

#define L_INCR SEEK_CUR

macroL_XTND

#define L_XTND SEEK_END

structaccessx_descriptor

size 16, align 4
unsigned intad_name_offset
intad_flags
int[2]ad_pad

macroACCESSX_MAX_DESCRIPTORS

#define ACCESSX_MAX_DESCRIPTORS 100

macroACCESSX_MAX_TABLESIZE

#define ACCESSX_MAX_TABLESIZE (16 * 1024)

macro_PC_MAX_CANON

#define _PC_MAX_CANON 2

macro_PC_MAX_INPUT

#define _PC_MAX_INPUT 3

macro_PC_NAME_MAX

#define _PC_NAME_MAX 4

macro_PC_PATH_MAX

#define _PC_PATH_MAX 5

macro_PC_PIPE_BUF

#define _PC_PIPE_BUF 6

macro_PC_CHOWN_RESTRICTED

#define _PC_CHOWN_RESTRICTED 7

macro_PC_NO_TRUNC

#define _PC_NO_TRUNC 8

macro_PC_VDISABLE

#define _PC_VDISABLE 9

macro_PC_NAME_CHARS_MAX

#define _PC_NAME_CHARS_MAX 10

macro_PC_CASE_SENSITIVE

#define _PC_CASE_SENSITIVE 11

macro_PC_CASE_PRESERVING

#define _PC_CASE_PRESERVING 12

macro_PC_EXTENDED_SECURITY_NP

#define _PC_EXTENDED_SECURITY_NP 13

macro_PC_AUTH_OPAQUE_NP

#define _PC_AUTH_OPAQUE_NP 14

macro_PC_ALLOC_SIZE_MIN

#define _PC_ALLOC_SIZE_MIN 16
Minimum storage actually allocated

macro_PC_ASYNC_IO

#define _PC_ASYNC_IO 17
Async I/O [AIO] supported?

macro_PC_FILESIZEBITS

#define _PC_FILESIZEBITS 18
# of bits to represent file size

macro_PC_PRIO_IO

#define _PC_PRIO_IO 19
Priority I/O [PIO] supported?

macro_PC_REC_INCR_XFER_SIZE

#define _PC_REC_INCR_XFER_SIZE 20
Recommended increment for next two

macro_PC_REC_MAX_XFER_SIZE

#define _PC_REC_MAX_XFER_SIZE 21
Recommended max file transfer size

macro_PC_REC_MIN_XFER_SIZE

#define _PC_REC_MIN_XFER_SIZE 22
Recommended min file transfer size

macro_PC_REC_XFER_ALIGN

#define _PC_REC_XFER_ALIGN 23
Recommended buffer alignment

macro_PC_SYNC_IO

#define _PC_SYNC_IO 25
Sync I/O [SIO] supported?

macro_PC_XATTR_SIZE_BITS

#define _PC_XATTR_SIZE_BITS 26
# of bits to represent maximum xattr size

macro_PC_MIN_HOLE_SIZE

#define _PC_MIN_HOLE_SIZE 27
Recommended minimum hole size for sparse files

macro_CS_PATH

configurable system strings
#define _CS_PATH 1

functiongetattrlistbulk

__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0)
int getattrlistbulk(int, void *, void *, size_t, uint64_t)
man page · November 15, 2013
getattrlistbulk(2) — get file system attributes for multiple directory entries
⚠ the man page prototype differs from the current header — man: int getattrlistbulk(int, struct attrlist*, void*, size_t, u64) · header: int getattrlistbulk(int, void*, void*, size_t, u64)

functiongetattrlistat

__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0)
int getattrlistat(int, const char *, void *, void *, size_t, unsigned long)
man page · March 7, 2025
getattrlistat(2) — get file system attributes
⚠ the man page prototype differs from the current header — man: int getattrlistat(int, char*, struct attrlist*, void*, size_t, unsigned long) · header: int getattrlistat(int, char*, void*, void*, size_t, unsigned long)

functionsetattrlistat

__OSX_AVAILABLE(10.13) __IOS_AVAILABLE(11.0) __TVOS_AVAILABLE(11.0) __WATCHOS_AVAILABLE(4.0)
int setattrlistat(int, const char *, void *, void *, size_t, uint32_t)
man page · December 15, 2003
setattrlistat(2) — set file system attributes
⚠ the man page prototype differs from the current header — man: int setattrlistat(int, char*, struct attrlist*, void*, size_t, unsigned) · header: int setattrlistat(int, char*, void*, void*, size_t, unsigned)

functionfaccessat

__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0)
int faccessat(int, const char *, int, int)
man page · September 15, 2014
faccessat(2) — check accessibility of a file

functionfchownat

__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0)
int fchownat(int, const char *, uid_t, gid_t, int)
man page · April 19, 1994
fchownat(2) — change owner and group of a file

functionlinkat

__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0)
int linkat(int, const char *, int, const char *, int)
man page · June 3, 2021
linkat(2) — make a hard file link

functionreadlinkat

__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0)
ssize_t readlinkat(int, const char *, char *, size_t)
man page · June 4, 1993
readlinkat(2) — read value of a symbolic link

functionsymlinkat

__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0)
int symlinkat(const char *, int, const char *)
man page · June 4, 1993
symlinkat(2) — make symbolic link to a file

functionunlinkat

__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0)
int unlinkat(int, const char *, int)
man page · June 4, 1993
unlinkat(2) — remove directory entry