上一页 下一页

C 编程基础

命令行参数

C 语言提供了一种相当简单的机制来获取用户输入的命令行参数。它将 argv 参数传递给程序中的主函数。argv 结构出现在许多更高级的库调用中,因此理解它们对任何 C 程序员都很有用。

输入以下代码并编译

广告

#include <stdio.h>

int main(int argc, char *argv[])
{
    int x;

    printf("%d\n",argc);
    for (x=0; x<argc; x++)
        printf("%s\n",argv[x]);
    return 0;
}

在此代码中,主程序接受两个参数:argv 和 argc。argv 参数是一个指向字符串的指针数组,其中包含在 UNIX 命令行调用程序时输入的参数。argc 整数包含参数的数量。这段特定的代码会打印出命令行参数。要尝试此功能,请将代码编译为名为 aaa 的可执行文件,然后键入 aaa xxx yyy zzz。代码将每行打印一个命令行参数:xxx、yyy 和 zzz。

char *argv[] 这行代码是一个指向字符串的指针数组。换句话说,数组的每个元素都是一个指针,每个指针都指向一个字符串(严格来说,是字符串的第一个字符)。因此,argv[0] 指向包含命令行上第一个参数(程序名称)的字符串,argv[1] 指向下一个参数,依此类推。argc 变量告诉您数组中有多少个指针是有效的。您会发现前面的代码只是打印出 argv 指向的每个有效字符串。

由于 argv 的存在,您可以让您的程序相当容易地响应用户输入的命令行参数。例如,您可以让程序检测程序名称后的第一个参数是否为单词 help,然后将帮助文件输出到标准输出。文件名也可以作为参数传入并在您的 fopen 语句中使用。