Skip to content
Syscall BSD#220

svc · unix #220

getattrlist

Lit en un seul appel système un ensemble sélectionné d'attributs de fichier via un attrlist compact (spécifique macOS).

Prototype

int getattrlist(const char *path, struct attrlist *alist, void *attributeBuffer, size_t bufferSize, u_long options);

Retour: int

Arguments

NameTypeDirDescription
pathconst char-
aliststruct attrlist-
attributeBuffervoid-
bufferSizesize_t-
optionsu_long-

Historique des versions

XNU tagmacOS#
xnu-1456.1.26macOS 10.6 Snow Leopard220
xnu-1486.2.11220
xnu-1504.15.3220
xnu-1504.3.12220
xnu-1504.7.4220
xnu-1504.9.17220
xnu-1504.9.26220
xnu-1504.9.37220

Exemples

C — read common attributes

struct attrlist al = {0};
al.bitmapcount = ATTR_BIT_MAP_COUNT;
al.commonattr = ATTR_CMN_NAME | ATTR_CMN_MODTIME;
char buf[1024];
getattrlist(path, &al, buf, sizeof buf, 0);

Notes

Bien plus efficace que plusieurs appels stat/xattr lorsque de nombreux attributs sont nécessaires. Supporte les groupes common, volume, dir, file et forkattr. Beaucoup d'attributs spécifiques APFS (statut de clone, état scellé, détection « dataless ») ne sont accessibles que via cette API.

Détection

syscall::getattrlist:entry en DTrace; la struct attrlist se décode depuis arg1.

API associées

fgetattrlistsetattrlistgetattrlistatgetattrlistbulkstat