我得到来自用户的命令行参数。Optarg和命令行参数
我那么做开关的情况下的命令,例如:
case 'f':
*file_name = optarg;
break;
我不确定我是否需要对malloc的指针,因为我不完全理解OPTARG。
这是FILE_NAME的声明方式:
char **file_name;
我应该为字符串长度+ 1做
int length = strlen(optarg); // This gives a warning about types when compiling.
然后的malloc?
malloc应该如何处理这类问题?请记住,用户正在将文件名输入到** argv中。
编辑:这是我如何调用这个功能,仍然是分段错误。
int main(int argc, char **argv)
{
char **file_name;
parser(argc, argvm file_name);
}
void parser(int argc, char **argv, char **file_name)
{
// Switch cases.
}
我一直在这条线越来越分段故障FILE_NAME = OPTARG;如果我在一个函数中做这件事,这有什么关系吗? (我会发布上面的代码) –
哎呀,忽略了。 char *文件名应该工作。 – dnk
我的逻辑是我需要传递一个指向file_name指针的指针,以便接收main中的文件名。 –