我正在尝试在C中实现Unix命令“tar”。它将使用命令p5a -c archive infile1 infile2 ... infilek
执行,其中参数infile1,infile2,...,infilek
表示必须组合以创建存档的文件的名称。我无法从命令行获取文件名并将它们存储到数组中。任何帮助,将不胜感激。
谢谢!
答案 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请参阅该页面上的示例。很好地解释了。