Re: snprintf defined as ap_php_snprintf
| From: | Derick Rethans | Date: | Thu, 03 Feb 2005 20:14:13 +0000 |
| Subject: | Re: snprintf defined as ap_php_snprintf | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-14593@lists.php.net to get a copy of this message | ||
On Thu, 3 Feb 2005, Jeff Olhoeft wrote:
> Hello,
>
> We recently upgraded a system from PHP 4.3.4 to 4.3.10, and tripped
> over a problem with snprintf. One of our PHP extension modules
> started failing, causing Apache to exit with code 0177. Investigation
> showed the culprit to be snprintf. It turns out that in 4.3.10,
> snprintf is #defined to be ap_php_snprintf. If we #undef snprintf
> (thus using glibc's snprintf), the problem is cleared up.
>
> In this segment of the diff between versions 1.178.2.9 and 1.178.2.8
> of php.h, you'll see that tests for the existence of a system snprintf
> were removed.
>
> -#if !defined(HAVE_SNPRINTF) || !defined(HAVE_VSNPRINTF) ||
> PHP_BROKEN_SPRINTF || PHP_BROKEN_SNPRINTF || PHP_BROKEN_VSNPRINTF
> #include "snprintf.h"
> -#endif
>
> Is this a deliberate change? Is there some way to tell configure to
> use the system snprintf instead of the PHP version?
You should always been using the ap_php_snprintf() one as that has an
extra modified %F for non-locale aware number formatting. To make your
extension work, make sure to include main/snprintf.h.
regards,
Derick
--
Derick Rethans
http://derickrethans.nl | http://ez.no | http://xdebug.org