xref: /src/lib/libc/stdlib/memalignment.3 (revision 6c57e368eb1777f6097158eeca2fcc175d068dba)
16c57e368SRobert Clausecker.\"
26c57e368SRobert Clausecker.\" Copyright (c) 2025 Robert Clausecker <fuz@FreeBSD.org>
36c57e368SRobert Clausecker.\"
46c57e368SRobert Clausecker.\" SPDX-License-Identifier: BSD-2-Clause
56c57e368SRobert Clausecker.\"
66c57e368SRobert Clausecker.Dd November 10, 2025
76c57e368SRobert Clausecker.Dt MEMALIGNMENT 3
86c57e368SRobert Clausecker.Os
96c57e368SRobert Clausecker.Sh NAME
106c57e368SRobert Clausecker.Nm memalignment
116c57e368SRobert Clausecker.Nd find the memory alignment of an object
126c57e368SRobert Clausecker.Sh SYNOPSIS
136c57e368SRobert Clausecker.Lb libc
146c57e368SRobert Clausecker.In stdlib.h
156c57e368SRobert Clausecker.Ft size_t
166c57e368SRobert Clausecker.Fn memalignment "const void *ptr"
176c57e368SRobert Clausecker.Sh DESCRIPTION
186c57e368SRobert ClauseckerThe
196c57e368SRobert Clausecker.Fn memalignment
206c57e368SRobert Clauseckerfunction determines the alignment of the object pointed to by
216c57e368SRobert Clausecker.Fa ptr .
226c57e368SRobert ClauseckerThis alignment is a power of\~2, and may be larger than the range
236c57e368SRobert Clauseckersupported by the
246c57e368SRobert Clausecker.Sy alignof
256c57e368SRobert Clauseckeroperator.
266c57e368SRobert ClauseckerThe value returned can be compared to the result of
276c57e368SRobert Clausecker.Sy alignof ,
286c57e368SRobert Clauseckerand if it is greater or equal, the alignment requirement of the operand
296c57e368SRobert Clauseckeris satisfied.
306c57e368SRobert Clausecker.Sh RETURN VALUES
316c57e368SRobert ClauseckerReturns the alignment of
326c57e368SRobert Clausecker.Fa ptr
336c57e368SRobert Clauseckeras a power of\~2.
346c57e368SRobert ClauseckerIf
356c57e368SRobert Clausecker.Fa ptr
366c57e368SRobert Clauseckeris a null pointer, an alignment of zero is returned.
376c57e368SRobert ClauseckerAn alignment of zero indicates that the tested pointer cannot be used to
386c57e368SRobert Clauseckeraccess an object of any type.
396c57e368SRobert Clausecker.Sh SEE ALSO
406c57e368SRobert Clausecker.Xr aligned_alloc 3 ,
416c57e368SRobert Clausecker.Xr posix_memalign 3
426c57e368SRobert Clausecker.Sh STANDARDS
436c57e368SRobert ClauseckerThe
446c57e368SRobert Clausecker.Fn memalignment
456c57e368SRobert Clauseckerfunction conforms to
466c57e368SRobert Clausecker.St -isoC-2023 .
476c57e368SRobert Clausecker.Sh HISTORY
486c57e368SRobert ClauseckerThe
496c57e368SRobert Clausecker.Fn memalignment
506c57e368SRobert Clauseckerfunction was added in
516c57e368SRobert Clausecker.Fx 15.1.
526c57e368SRobert Clausecker.Sh AUTHOR
536c57e368SRobert Clausecker.An Robert Clausecker Aq Mt fuz@FreeBSD.org
54