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

最佳答案

我确实不应该像喂家庭作业那样随意喂食,但是自从我上次接触gcc并需要一些练习以来已经有两年了。

一方面,您似乎可以使用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

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

关于c - 获取命令行元素并将其存储到数组中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16267684/

10-12 22:30
查看更多