BSD syscall#200
svc · unix #200
truncate
Sets the length of a file referenced by path, extending with zeros or discarding tail bytes as needed.
Prototype
int truncate(char *path, off_t length);Returns: int
Arguments
| Name | Type | Dir | Description |
|---|---|---|---|
| path | char | - | |
| length | off_t | - |
Version history
| XNU tag | macOS | # |
|---|---|---|
| xnu-1456.1.26 | macOS 10.6 Snow Leopard | 200 |
| xnu-1699.24.8 | macOS 10.7 Lion | 200 |
| xnu-2050.18.24 | macOS 10.8 Mountain Lion | 200 |
| xnu-2422.115.4 | macOS 10.9 Mavericks | 200 |
| xnu-2782.40.9 | macOS 10.10 Yosemite | 200 |
| xnu-3247.1.106 | macOS 10.11 El Capitan | 200 |
| xnu-3789.1.32 | macOS 10.12 Sierra | 200 |
| xnu-4570.1.46 | macOS 10.13 High Sierra | 200 |
| xnu-4903.221.2 | macOS 10.14 Mojave | 200 |
| xnu-6153.11.26 | macOS 10.15 Catalina | 200 |
| xnu-7195.50.7.100.1 | macOS 11.0 Big Sur | 200 |
| xnu-8019.41.5 | macOS 12.0 Monterey | 200 |
| xnu-8792.41.9 | macOS 13.0 Ventura | 200 |
| xnu-10002.1.13 | macOS 14.0 Sonoma | 200 |
| xnu-11215.1.10 | macOS 15.0 Sequoia | 200 |
| xnu-11417.101.15 | macOS 15.4 Sequoia | 200 |
| xnu-12377.1.9 | macOS 26.0 Tahoe | 200 |
| xnu-10002.41.9 | — | 200 |
| xnu-10002.61.3 | — | 200 |
| xnu-10002.81.5 | — | 200 |
| xnu-10063.101.15 | — | 200 |
| xnu-10063.121.3 | — | 200 |
| xnu-10063.141.1 | — | 200 |
| xnu-11215.41.3 | — | 200 |
| xnu-11215.61.5 | — | 200 |
| xnu-11215.81.4 | — | 200 |
| xnu-11417.121.6 | — | 200 |
| xnu-11417.140.69 | — | 200 |
| xnu-12377.101.15 | — | 200 |
| xnu-12377.41.6 | — | 200 |
| xnu-12377.61.12 | — | 200 |
| xnu-12377.81.4 | — | 200 |
| xnu-1486.2.11 | — | 200 |
| xnu-1504.15.3 | — | 200 |
| xnu-1504.3.12 | — | 200 |
| xnu-1504.7.4 | — | 200 |
| xnu-1504.9.17 | — | 200 |
| xnu-1504.9.26 | — | 200 |
| xnu-1504.9.37 | — | 200 |
| xnu-1699.22.73 | — | 200 |
| xnu-1699.22.81 | — | 200 |
| xnu-1699.24.23 | — | 200 |
| xnu-1699.26.8 | — | 200 |
| xnu-1699.32.7 | — | 200 |
| xnu-2050.22.13 | — | 200 |
| xnu-2050.24.15 | — | 200 |
| xnu-2050.48.11 | — | 200 |
| xnu-2050.7.9 | — | 200 |
| xnu-2050.9.2 | — | 200 |
| xnu-2422.1.72 | — | 200 |
| xnu-2422.100.13 | — | 200 |
| xnu-2422.110.17 | — | 200 |
| xnu-2422.90.20 | — | 200 |
| xnu-2782.1.97 | — | 200 |
| xnu-2782.10.72 | — | 200 |
| xnu-2782.20.48 | — | 200 |
| xnu-2782.30.5 | — | 200 |
| xnu-3247.10.11 | — | 200 |
| xnu-3248.20.55 | — | 200 |
| xnu-3248.30.4 | — | 200 |
| xnu-3248.40.184 | — | 200 |
| xnu-3248.50.21 | — | 200 |
| xnu-3248.60.10 | — | 200 |
| xnu-3789.21.4 | — | 200 |
| xnu-3789.31.2 | — | 200 |
| xnu-3789.41.3 | — | 200 |
| xnu-3789.51.2 | — | 200 |
| xnu-3789.60.24 | — | 200 |
| xnu-3789.70.16 | — | 200 |
| xnu-4570.20.62 | — | 200 |
| xnu-4570.31.3 | — | 200 |
| xnu-4570.41.2 | — | 200 |
| xnu-4570.51.1 | — | 200 |
| xnu-4570.61.1 | — | 200 |
| xnu-4570.71.2 | — | 200 |
| xnu-4903.231.4 | — | 200 |
| xnu-4903.241.1 | — | 200 |
| xnu-4903.270.47 | — | 200 |
| xnu-6153.101.6 | — | 200 |
| xnu-6153.121.1 | — | 200 |
| xnu-6153.141.1 | — | 200 |
| xnu-6153.41.3 | — | 200 |
| xnu-6153.61.1 | — | 200 |
| xnu-6153.81.5 | — | 200 |
| xnu-7195.101.1 | — | 200 |
| xnu-7195.121.3 | — | 200 |
| xnu-7195.141.2 | — | 200 |
| xnu-7195.60.75 | — | 200 |
| xnu-7195.81.3 | — | 200 |
| xnu-8019.61.5 | — | 200 |
| xnu-8019.80.24 | — | 200 |
| xnu-8020.101.4 | — | 200 |
| xnu-8020.121.3 | — | 200 |
| xnu-8020.140.41 | — | 200 |
| xnu-8792.61.2 | — | 200 |
| xnu-8792.81.2 | — | 200 |
| xnu-8796.101.5 | — | 200 |
| xnu-8796.121.2 | — | 200 |
| xnu-8796.141.3 | — | 200 |
Notes
Extension creates a hole when the underlying filesystem supports sparse files (APFS does). Truncating below the current size releases storage and may invalidate cached mmap pages. Requires write permission on the file.
Detection
syscall::truncate:entry in DTrace; ES emits ES_EVENT_TYPE_NOTIFY_TRUNCATE with the target vnode.
Related APIs
ftruncateopenfcntlunlink