Re: Wierd problems with posix_memalign...

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux