获取命令行的元素并将它们存储到数组中

时间:2013-04-28 20:48:01

标签: c command-line-arguments archive

我正在尝试在C中实现Unix命令“tar”。它将使用命令p5a -c archive infile1 infile2 ... infilek执行,其中参数infile1,infile2,...,infilek 表示必须组合以创建存档的文件的名称。我无法从命令行获取文件名并将它们存储到数组中。任何帮助,将不胜感激。 谢谢!

1 个答案:

答案 0 :(得分:0)

我真的不应该用勺子喂养看起来像家庭作业的问题,但是自从我上次接触gcc并需要一些练习以来已经有2年了。

一方面,您似乎能够使用argc获取所需的数据。问题是“如何知道”参数的数量。大多数人都使用argv。刚刚使用Visual Studio 2010进行了以下操作,

#include<stdio.h>
#include<conio.h>

int main(int argv, char *argc[])
{
    int i = 1;
    printf("Your arguments are:\n");
    for (i=0; i<argv; i++)
    {
        printf("%s\n",argc[i]);
    }   
    return 0;
}

这是一些示例输出(Win7命令行),

C:\...\Debug>C_hello.exe this is a string of input
Your arguments are:
C_hello.exe
this
is
a
string
of
input

C:\...\Debug>

我希望你在linux中也能得到与gcc相似的结果。

编辑:对此事进行了一些搜索。看起来这里有一个标准的linux库, getopt

请参阅该页面上的示例。很好地解释了。