Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C linux中的参数到argv_C_Linux - Fatal编程技术网

C linux中的参数到argv

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

因为我从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[]) { // 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
允许在没有任何参数的情况下为零。看见