我得到來自用戶的命令行參數。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中的文件名。 –