Skip to content
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

NameTypeDirDescription
pathchar-
lengthoff_t-

Version history

XNU tagmacOS#
xnu-1456.1.26macOS 10.6 Snow Leopard200
xnu-1699.24.8macOS 10.7 Lion200
xnu-2050.18.24macOS 10.8 Mountain Lion200
xnu-2422.115.4macOS 10.9 Mavericks200
xnu-2782.40.9macOS 10.10 Yosemite200
xnu-3247.1.106macOS 10.11 El Capitan200
xnu-3789.1.32macOS 10.12 Sierra200
xnu-4570.1.46macOS 10.13 High Sierra200
xnu-4903.221.2macOS 10.14 Mojave200
xnu-6153.11.26macOS 10.15 Catalina200
xnu-7195.50.7.100.1macOS 11.0 Big Sur200
xnu-8019.41.5macOS 12.0 Monterey200
xnu-8792.41.9macOS 13.0 Ventura200
xnu-10002.1.13macOS 14.0 Sonoma200
xnu-11215.1.10macOS 15.0 Sequoia200
xnu-11417.101.15macOS 15.4 Sequoia200
xnu-12377.1.9macOS 26.0 Tahoe200
xnu-10002.41.9200
xnu-10002.61.3200
xnu-10002.81.5200
xnu-10063.101.15200
xnu-10063.121.3200
xnu-10063.141.1200
xnu-11215.41.3200
xnu-11215.61.5200
xnu-11215.81.4200
xnu-11417.121.6200
xnu-11417.140.69200
xnu-12377.101.15200
xnu-12377.41.6200
xnu-12377.61.12200
xnu-12377.81.4200
xnu-1486.2.11200
xnu-1504.15.3200
xnu-1504.3.12200
xnu-1504.7.4200
xnu-1504.9.17200
xnu-1504.9.26200
xnu-1504.9.37200
xnu-1699.22.73200
xnu-1699.22.81200
xnu-1699.24.23200
xnu-1699.26.8200
xnu-1699.32.7200
xnu-2050.22.13200
xnu-2050.24.15200
xnu-2050.48.11200
xnu-2050.7.9200
xnu-2050.9.2200
xnu-2422.1.72200
xnu-2422.100.13200
xnu-2422.110.17200
xnu-2422.90.20200
xnu-2782.1.97200
xnu-2782.10.72200
xnu-2782.20.48200
xnu-2782.30.5200
xnu-3247.10.11200
xnu-3248.20.55200
xnu-3248.30.4200
xnu-3248.40.184200
xnu-3248.50.21200
xnu-3248.60.10200
xnu-3789.21.4200
xnu-3789.31.2200
xnu-3789.41.3200
xnu-3789.51.2200
xnu-3789.60.24200
xnu-3789.70.16200
xnu-4570.20.62200
xnu-4570.31.3200
xnu-4570.41.2200
xnu-4570.51.1200
xnu-4570.61.1200
xnu-4570.71.2200
xnu-4903.231.4200
xnu-4903.241.1200
xnu-4903.270.47200
xnu-6153.101.6200
xnu-6153.121.1200
xnu-6153.141.1200
xnu-6153.41.3200
xnu-6153.61.1200
xnu-6153.81.5200
xnu-7195.101.1200
xnu-7195.121.3200
xnu-7195.141.2200
xnu-7195.60.75200
xnu-7195.81.3200
xnu-8019.61.5200
xnu-8019.80.24200
xnu-8020.101.4200
xnu-8020.121.3200
xnu-8020.140.41200
xnu-8792.61.2200
xnu-8792.81.2200
xnu-8796.101.5200
xnu-8796.121.2200
xnu-8796.141.3200

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