I am trying to initialize *argv with these values : test_file model result Can anyone help me how to directly initialize the argv instead of using command line. I am doing it like this:
*argv[]= {"test_file","model","output",NULL};
but its not working. I know its simple but i am new to programming. Can anyone help me?
char* dummy_args[] = { "dummyname", "arg1", "arg2 with spaces", "arg3", NULL };
int main( int argc, char** argv)
{
argv = dummy_args;
argc = sizeof(dummy_args)/sizeof(dummy_args[0]) - 1;
// etc...
return 0;
}
One thing to be aware of is that the standard argv
strings are permitted to be modified. These replacement ones cannot be (they're literals). If you need that capability (which many option parsers might), you'll need something a bit smarter. Maybe something like:
int new_argv( char*** pargv, char** new_args)
{
int i = 0;
int new_argc = 0;
char** tmp = new_args;
while (*tmp) {
++new_argc;
++tmp;
}
tmp = malloc( sizeof(char*) * (new_argc + 1));
// if (!tmp) error_fail();
for (i = 0; i < new_argc; ++i) {
tmp[i] = strdup(new_args[i]);
}
tmp[i] = NULL;
*pargv = tmp;
return new_argc;
}
That gets called like so:
argc = new_argv( &argv, dummy_args);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With