This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: Wierd problems with posix_memalign...
- From: Mihnea Balta <dark_lkml at mymail dot ro>
- To: Kimmo Fredriksson <kfredrik at cs dot joensuu dot fi>, gcc-help at gcc dot gnu dot org
- Date: Thu, 14 Aug 2003 14:06:45 +0300
- Subject: Re: Wierd problems with posix_memalign...
- References: <Pine.LNX.4.44.0308141334350.4401-100000@CSPC201.joensuu.fi>
>From the man page:
ERRORS
EINVAL The alignment parameter was not a power of two, or was not a
multiple of sizeof(void *).
ENOMEM There was insufficient memory to fulfill the allocation request.
NOTES
posix_memalign() verifies that alignment matches the requirements
detailed above. memalign() may not check that the boundary parameter is
correct.
On Thursday 14 August 2003 16:42, Kimmo Fredriksson wrote:
> Hi,
>
> I'm having troubles with posix_memalign. The following works OK:
>
>
> int r;
> void *p;
>
> r = posix_memalign( &p, 16, 65536 );
> if( r ) fprintf( stderr, "%s\n", strerror( r ));
>
> But e.g. this fails:
>
> r = posix_memalign( &p, 16, 65 );
> if( r ) fprintf( stderr, "%s\n", strerror( r ));
>
> i.e. it outputs: Invalid argument
>
> Why? It seems that the number of bytes (the last parameter) is "invalid".
> This happens with at least gcc 2.96 and gcc 3.3.1.
>
> My system is Linux 2.4.18 / RH8.0.
>
> kf
>
>
> ---------------------------------------------------------------
> Acasa.ro vine cu albumele, tu vino doar cu pozele ;)
> http://poze.acasa.ro/