C linux中的参数到argv
因为我从Linux中的C语言知道如果我们调用int终端来使用C 范例 和来自C文件中的C linux中的参数到argv,c,linux,C,Linux,因为我从Linux中的C语言知道如果我们调用int终端来使用C 范例 和来自C文件中的 int main(int argc, char *argv[]) 我必须如何编写代码才能从图片中的argv获取到 char *av[] = {"cal", "12" , "2021", (char *)0}; 每个参数都存储为字符数组,因此您无需担心 int main(int argc, char *argv[]) { // equivale
int main(int argc, char *argv[])
我必须如何编写代码才能从图片中的argv获取到
char *av[] = {"cal", "12" , "2021", (char *)0};
每个参数都存储为字符数组,因此您无需担心
int main(int argc, char *argv[]) { // equivalent to **argv
if (argc != 4) {
printf("Usage: %s arg1 arg2 arg3\n", argv[0]);
return 0;
}
char *req_arg1 = argv[1];
char *req_arg2 = argv[2];
char *req_arg3 = argv[3];
// ... manipulation with them ... //
return 0;
}
您可以在需要时直接使用
argv[1]
或argv[任何有效位置]
,我只是演示了参数是如何相互分离的。因为char*argv[]
包含元素0中的程序名和元素1中的程序参数,要获得所需的av
只需声明char**av=argv+1代码>请不要显示文本图像。请将您的问题复制粘贴为文本。至于您的问题,任何关于C的书都应该包含此信息,并且Internet上必须有数千个关于如何“获取”或读取命令行参数的教程。只需忽略argv[0]
。在命令行上的$./act41 cal 12…
之后,argv
元素将指向argv[0]=>“/act41”
,argv[1]=>“cal”
,argv[2]=>“12”
,…用法声明不是错误消息。可以写入fprintf(stderr,error\u msg);出口(1)代码>或printf(用法声明),退出(0)代码>向stdout写入用法语句而失败是不合适的。@williampersell现在将以退出代码零退出。因为char*argv[]
在元素0中包含程序名。。。不过要小心argv[0]
可以是长度为零的字符串,argc
允许在没有任何参数的情况下为零。看见