Hi Guys
Thanks for your wonderful tool, I use it all the time. 
I've been hitting a problem while combining several rrds into a single
graph, for example:
300 rrds, 14 datasources in each.. and combining them all
basically 100's if not 1000's of arguements
The problem is that the shell was hitting a length limit!
My solution - write args to text file (1 per line) and pass the filename as
the arg and read them in from the text file..
I'm not sure I did it in a great way but it works and could be useful if
anyone comes across this problem too. Code:
I renamed the original main() to rrdmain() and  made a new main which calls
rrdmain() after it has read the args from the file:

int main (int argc, char **argv[]) {

        FILE*fp ;
        int i;
        char line[1600];
        char** myargv;
        char* carriage;

        if (argc > 2 && strcmp("file", argv[1]) == 0) {

         fp = fopen ( argv[2],"r" ) ;
         if( fp == NULL )
         {
               puts ( "cannot open file" ) ;
               return 0;
                 }

                i = 0;
                while(!feof(fp))
                {
                        i++;
                        memset(line,'\0',1600);
                        fgets(line,1600,fp);
                        //printf("line %s", line);
                }
                fclose(fp);
                
                myargv = calloc(i, sizeof(char*));

                fp = fopen ( argv[2],"r" ) ;
                i=0;
                while(!feof(fp))
                {
                        fgets(line,1600,fp);
                        carriage = strrchr(line, '\n');
                        if (carriage != NULL) { *carriage = 0; }
                        myargv[i] = strdup(line);
                        printf("line %s", line);
                        i++;
                }
                fclose(fp);
                rrdmain(i, myargv);
        }
        else {
                rrdmain(argc, argv);
        }
}
         

int rrdmain(
    int argc,
    char **argv[])
{ //original main follows unmodified


again, it's not great but it got me past the limitation and maybe you can
use the idea in future versions

Cheers,
Richard

-- 
View this message in context: 
http://rrd-mailinglists.937164.n2.nabble.com/rrdtool-args-too-long-for-shell-solution-tp5359835p5359835.html
Sent from the RRDtool Developers Mailinglist mailing list archive at Nabble.com.

_______________________________________________
rrd-developers mailing list
[email protected]
https://lists.oetiker.ch/cgi-bin/listinfo/rrd-developers

Reply via email to