---
name: "getfilecon"
section: "3"
platform: "linux"
package: "libselinux1-dev"
version: "3.8.1-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/getfilecon"
---

# getfilecon(3)

get SELinux security context of a file

## NAME

getfilecon, fgetfilecon, lgetfilecon - get SELinux security context of a file

## SYNOPSIS

**#include \<selinux/selinux.h\>**

**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***);**

**int fgetfilecon\_raw(int** *fd***, char \*\****con***);**

## DESCRIPTION

**getfilecon**() retrieves the context associated with the given path in the file system, the length of the context is returned.

**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)](/open/2.md)) is interrogated in place of path.  Since libselinux 3.4 a file opened via *O\_PATH* is supported.

**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)](/freecon/3.md) if non-NULL.

## RETURN VALUE

On success, a positive number is returned indicating the size of the extended attribute value. On failure, -1 is returned and *errno* is  set appropriately.

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)](/stat/2.md) system call are also applicable here.

## SEE ALSO

[**selinux**(8)](/selinux/8.md), [**freecon**(3)](/freecon/3.md), [**setfilecon**(3)](/setfilecon/3.md), [**setfscreatecon**(3)](/setfscreatecon/3.md)
