使用的getopt我希望把一个子选项中的字符串,这样我可以把它当作一个文件名读取文件:在命令行,如果我输入的选择在C
char *nvalue = NULL;
char *dvalue = NULL;
char *input = NULL;
char inputfilename[] = "\"";
int ar;
int main(int argc, char *argv[])
{
while ((ar = getopt(argc, argv, "hn:d:i:")) != -1)
switch (ar)
{
case 'h':
printf("something");
break; /* added */
case 'n':
nvalue = optarg;
if (isdigit(nvalue))
stop = atoi(nvalue);
else
printf("something\n");
break; /* added */
case 'd':
dvalue = optarg;
if (!strcmp(dvalue, "FCFS") || !strcmp(dvalue, "SSTF") ||
!strcmp(dvalue, "C-SCAN") || !strcmp(dvalue, "LOOK"))
;
else
printf("Invalid type of disk scheduling policy entered.\n");
break; /* added */
case 'i':
input = optarg;
strcpy(inputfilename, optarg);
printf("Filename :%s\n", inputfilename);
break;
}
/* ... */
}
所以:
./foobar -i hello
那么我应该能够读取该文件:
FILE *file = fopen(inputfilename, "r");
有什么建议?答案? 谢谢!
这段代码有什么问题?我添加了中断来切换选项,声明停止变量并包含适当的文件,并按照您的要求工作。所以我不知道我该怎么帮你。 – Patryk