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.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