---
name: "procdesc"
section: "4"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd"]
url: "https://new.carta.tech/procdesc"
---

# procdesc(4)

process descriptor facility

## NAME

**procdesc** – process descriptor facility

## DESCRIPTION

**procdesc** is a file-descriptor-oriented interface to process signalling and control, which supplements historic UNIX [fork(2)](/fork/2.md) and [kill(2)](/kill/2.md), primitives with new system calls such as [pdfork(2)](/pdfork/2.md) and [pdkill(2)](/pdkill/2.md), **procdesc** is designed for use with [capsicum(4)](/capsicum/4.md), replacing process identifiers with capability-oriented references. However, it can also be used independently of [capsicum(4)](/capsicum/4.md), displacing PIDs, which may otherwise suffer from race conditions. Given a process descriptor, it is possible to query its conventional PID using [pdgetpid(2)](/pdgetpid/2.md).

## SEE ALSO

[fork(2)](/fork/2.md), [kill(2)](/kill/2.md), [kqueue(2)](/kqueue/2.md), [pdfork(2)](/pdfork/2.md), [pdgetpid(2)](/pdgetpid/2.md), [pdkill(2)](/pdkill/2.md), [wait4(2)](/wait4/2.md), [capsicum(4)](/capsicum/4.md)

## HISTORY

**procdesc** first appeared in FreeBSD 9.0, and was developed at the University of Cambridge.

## AUTHORS

**procdesc** was developed by Robert Watson ⟨*rwatson@FreeBSD.org*⟩ and Jonathan Anderson ⟨*jonathan@FreeBSD.org*⟩ at the University of Cambridge, and Ben Laurie ⟨*benl@FreeBSD.org*⟩ and Kris Kennaway ⟨*kris@FreeBSD.org*⟩ at Google, Inc.
