Hi Managers,
Have any of you got complaints that the C library implementation of
stdarg.h? Is there a patch for this problem in the Standard C library?
I have the following program (straight from the man page for stdarg) that
dumps core at the fourth argument.
#include <stdarg.h>
#include <iostream.h>
#define MAXargS 100
/*
** execl is called by
** execl(file, arg1, arg2, . . . , (char *) 0);
*/
void
execit(char * file, ...)
{ va_list ap;
char *args[MAXargS];
int argno = 0;
va_start(ap, file);
for (; (args[argno] = va_arg(ap, char *)) != (char *) 0; argno++)
{
// prints an invalid fourth address.
cout << "addr: " << hex << (void*) args[argno] << endl;
// dumps core when printing the fourth argument. Obviously.
cout << "arg : " << args[argno] << endl;
}
va_end(ap);
//return (execv(file, args));
}
int
main()
{
execit("test", "one", "two", "three");
}
--
-- Narendra Ravi Email : narendra_at_spiff.hr.att.com
MT A4-4B27 Phone : 732-420-7792
Received on Mon Oct 30 2000 - 16:00:20 NZDT