Я использую poptGetArgs для чтения нескольких значений для одной опции. Но он всегда возвращает null как возвращаемое значение. Я разместил свой код ниже. пожалуйста, помогите мне решить, есть ли у него какие-либо ошибки.poptGetArgs возврат null.
int main(int argc, char **argv)
{
char filename[ 128 ], symbol[32];
memset(filename, 0x0, 128);
memset(symbol, 0x0, 32);
struct poptOption opttable[] =
{
{ "file", 'f', POPT_ARG_STRING, filename, INPUT_NAME, "filenames to read", "list of files we need to read" },
{ "symbol", 'r', POPT_ARG_STRING, symbol, SYMBOL, "symbol to view", NULL },
{ NULL, 0, 0, NULL, 0 }
};
poptContext options_socket = poptGetContext(NULL, argc, (const char **)argv, opttable, 0);
int optionvalue(0);
while(optionvalue > -1)
{
optionvalue = poptGetNextOpt(options_socket);
if(optionvalue == INPUT_NAME)
{
const char ** files = poptGetArgs(options_socket);
if(files == NULL)
{
printf("There was an error while reading input files\n");
}
}
else if(optionvalue == SYMBOL)
{
strcpy(symbol, poptGetOptArg(options_socket));
printf("symbol you are giving as input is :%s, option value:%d\n", symbol, optionvalue);
}
}
return 0;
}
В стороне: вместо 'memset (filename, 0x0, 128);' почему не просто сказать 'char filename [128] = ""; '? –
Оба - то же самое. – VNS