0

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

4

1 回答 1

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

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

于 2013-04-30T16:13:02.967 回答