1*6c57e368SRobert Clausecker.\" 2*6c57e368SRobert Clausecker.\" Copyright (c) 2025 Robert Clausecker <fuz@FreeBSD.org> 3*6c57e368SRobert Clausecker.\" 4*6c57e368SRobert Clausecker.\" SPDX-License-Identifier: BSD-2-Clause 5*6c57e368SRobert Clausecker.\" 6*6c57e368SRobert Clausecker.Dd November 10, 2025 7*6c57e368SRobert Clausecker.Dt MEMALIGNMENT 3 8*6c57e368SRobert Clausecker.Os 9*6c57e368SRobert Clausecker.Sh NAME 10*6c57e368SRobert Clausecker.Nm memalignment 11*6c57e368SRobert Clausecker.Nd find the memory alignment of an object 12*6c57e368SRobert Clausecker.Sh SYNOPSIS 13*6c57e368SRobert Clausecker.Lb libc 14*6c57e368SRobert Clausecker.In stdlib.h 15*6c57e368SRobert Clausecker.Ft size_t 16*6c57e368SRobert Clausecker.Fn memalignment "const void *ptr" 17*6c57e368SRobert Clausecker.Sh DESCRIPTION 18*6c57e368SRobert ClauseckerThe 19*6c57e368SRobert Clausecker.Fn memalignment 20*6c57e368SRobert Clauseckerfunction determines the alignment of the object pointed to by 21*6c57e368SRobert Clausecker.Fa ptr . 22*6c57e368SRobert ClauseckerThis alignment is a power of\~2, and may be larger than the range 23*6c57e368SRobert Clauseckersupported by the 24*6c57e368SRobert Clausecker.Sy alignof 25*6c57e368SRobert Clauseckeroperator. 26*6c57e368SRobert ClauseckerThe value returned can be compared to the result of 27*6c57e368SRobert Clausecker.Sy alignof , 28*6c57e368SRobert Clauseckerand if it is greater or equal, the alignment requirement of the operand 29*6c57e368SRobert Clauseckeris satisfied. 30*6c57e368SRobert Clausecker.Sh RETURN VALUES 31*6c57e368SRobert ClauseckerReturns the alignment of 32*6c57e368SRobert Clausecker.Fa ptr 33*6c57e368SRobert Clauseckeras a power of\~2. 34*6c57e368SRobert ClauseckerIf 35*6c57e368SRobert Clausecker.Fa ptr 36*6c57e368SRobert Clauseckeris a null pointer, an alignment of zero is returned. 37*6c57e368SRobert ClauseckerAn alignment of zero indicates that the tested pointer cannot be used to 38*6c57e368SRobert Clauseckeraccess an object of any type. 39*6c57e368SRobert Clausecker.Sh SEE ALSO 40*6c57e368SRobert Clausecker.Xr aligned_alloc 3 , 41*6c57e368SRobert Clausecker.Xr posix_memalign 3 42*6c57e368SRobert Clausecker.Sh STANDARDS 43*6c57e368SRobert ClauseckerThe 44*6c57e368SRobert Clausecker.Fn memalignment 45*6c57e368SRobert Clauseckerfunction conforms to 46*6c57e368SRobert Clausecker.St -isoC-2023 . 47*6c57e368SRobert Clausecker.Sh HISTORY 48*6c57e368SRobert ClauseckerThe 49*6c57e368SRobert Clausecker.Fn memalignment 50*6c57e368SRobert Clauseckerfunction was added in 51*6c57e368SRobert Clausecker.Fx 15.1. 52*6c57e368SRobert Clausecker.Sh AUTHOR 53*6c57e368SRobert Clausecker.An Robert Clausecker Aq Mt fuz@FreeBSD.org 54