---
name: "lchflags"
section: "3"
platform: "macos"
package: "Libc"
version: "1752.120.2"
release: "macOS 26.5"
platforms: ["macos"]
url: "https://new.carta.tech/lchflags/3"
---

# lchflags(3)

set file flags

## NAME

**lchflags** – set file flags

## SYNOPSIS

**#include \<sys/stat.h\>**

**#include \<unistd.h\>**

*int*\

**lchflags**(*const char \*path*, *u\_int flags*);

## DESCRIPTION

The file whose name is given by *path* has its flags changed to *flags*. See [chflags(2)](/chflags/2.md) for the values of the *flags*.

The **lchflags**() call is like **chflags**() except when the named file is a symbolic link, in which case **lchflags**() will change the flags of the link itself, rather than the file it points to.

## NOTE

Instead of being a system call, **lchflags**() is emulated using [setattrlist(2)](/setattrlist/2.md).

## RETURN VALUES

Upon successful completion, a value of 0 is returned. Otherwise, -1 is returned and the global variable *errno* is set to indicate the error.

## ERRORS

The **lchflags**() call may return the same errors as [setattrlist(2)](/setattrlist/2.md).

## SEE ALSO

[chflags(2)](/chflags/2.md), [setattrlist(2)](/setattrlist/2.md)
