[rrd-developers] Re: calling rrd_create directly in librrd.so

Ashok Mandala amandala at speedtrak.com
Fri Jul 20 02:15:57 MEST 2001


Hi Chris,

Thanks. I had already done that - but it still seg. faults. I did an objdump on
the librrd.so file and saw that it was linking to glibc2.0  getopt_long
function.  Is that correct ? (since I saw other definitions for the getopt_long
in getopt1.c)

Thanks.
Ashok.

Chris Carton wrote:

> >===== Original Message From Ashok Mandala <amandala at speedtrak.com> =====
> >Hi,
> >
> >I am trying to use the "C" API  for the rrd functionality to
> >create/update rrd files. I have created the proper argument list that
> >rrd_create expects, but I get a segmentation fault from rrd_create when
> >I try to use it. I have stepped through the code using gdb and have
> >followed it to the point in rrd_create.c where it calls getopt_long() -
> >there it issues a segmentation fault when I try to step into it. I saw
> >some code for getopt_long() definition in getopt1.c included with
> >rrdtool - so this call should have gone to that getopt_long() and the
> >source should have opened up. Is the call binding to the libc
> >getopt_long() ? Has anyone faced this same problem before ?
> >
> >Thanks.
> >Ashok.
>
> This is a common stumbling block people run into. These functions really
> shouldn't have been designed to assume that they are called from the command
> line, but ahh well.
>
> getopt() uses a global variable 'optind' to indicate the next option in the
> command line that has to be parsed. Before you can call these rrd functions
> you need to set this variable to 0.
>
> Declare it like this:
> extern int optind;
>
> Then set it to zero just prior to calling any rrd_* functions.
>
> This should fix the problem.
>
> Chris


--
Unsubscribe mailto:rrd-developers-request at list.ee.ethz.ch?subject=unsubscribe
Help        mailto:rrd-developers-request at list.ee.ethz.ch?subject=help
Archive     http://www.ee.ethz.ch/~slist/rrd-developers
WebAdmin    http://www.ee.ethz.ch/~slist/lsg2.cgi



More information about the rrd-developers mailing list