int getfilecon(const char *path, char **con);
int getfilecon_raw(const char *path, char **con);
int lgetfilecon(const char *path, char **con);
int lgetfilecon_raw(const char *path, char **con);
int fgetfilecon(int fd, char **con);
lgetfilecon() is identical to getfilecon(), except in the case of a symbolic link, where the link itself is interrogated, not the file that it refers to.
fgetfilecon() is identical to getfilecon(), only the open file pointed to by filedes (as returned by open(2)) is interrogated in place of path.
getfilecon_raw(), lgetfilecon_raw() and fgetfilecon_raw() behave identically to their non-raw counterparts but do not perform context translation.
The returned context should be freed with freecon(3) if non-NULL.
If the context does not exist, or the process has no access to this attribute, errno is set to ENODATA.
If extended attributes are not supported by the filesystem, or are disabled, errno is set to ENOTSUP.
The errors documented for the stat(2) system call are also applicable here.