[buug-l] glibc: snprintf
Michael Wiedmann
mw at miwie.in-berlin.de
Don Sep 25 17:37:59 CEST 2003
Warum funktioniert der folgende Code nicht mit der glibc (2.2/2.3) unter Linux,
wohl aber unter Solaris und deren libc?
Michael
---
#include <stdio.h>
int main()
{
char *p, buffer[10];
int i;
memset(buffer, 0x0, sizeof(buffer));
p = buffer;
/* 'snprintf' aus der 'glibc' ueberschreibt sich selbst
* immer den Pointer 'p' (p[0]=0, gesehen in den Sourcen zu
* glibc 2.3.x) und damit funktioniert das "Anhaengen" nicht.
*/
for (i=0; i<5; i++)
snprintf(p, sizeof(buffer), "%s%02d", p, i);
printf("%s\n", buffer);
return 0;
}
--
mw at miwie.in-berlin.de http://www.miwie.org
mw at miwie.org