This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Wierd problems with posix_memalign...


>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 Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]