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

# lchmod(3)

change mode of file

## NAME

**lchmod** – change mode of file

## SYNOPSIS

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

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

*int*\

**lchmod**(*const char \*path*, *mode\_t flags*);

## DESCRIPTION

The function **lchmod**() sets the file permission bits of the file specified by the pathname *path* to *mode*. See [chmod(2)](/chmod/2.md) for the values of the *flags*.

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

## NOTE

Instead of being a system call, **lchmod**() is emulated using [setattrlist(2)](/setattrlist/2.md). Not all file systems support [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 **lchmod**() call may return the same errors as [chmod(2)](/chmod/2.md) and [setattrlist(2)](/setattrlist/2.md).

## SEE ALSO

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