0
我试图在C中实现Unix命令“tar”。它将使用命令p5a -c archive infile1 infile2 ... infilek
执行,其中参数infile1,infile2,...,infilek 表示必须组合以创建存档的文件的名称。我无法从命令行获取文件名并将它们存储到数组中。任何帮助,将不胜感激。 谢谢!获取命令行的元素并将它们存储到数组中
我试图在C中实现Unix命令“tar”。它将使用命令p5a -c archive infile1 infile2 ... infilek
执行,其中参数infile1,infile2,...,infilek 表示必须组合以创建存档的文件的名称。我无法从命令行获取文件名并将它们存储到数组中。任何帮助,将不胜感激。 谢谢!获取命令行的元素并将它们存储到数组中
我真的不应该是勺子喂什么看起来像一个家庭作业的问题,但自从我上次触碰海湾合作委员会已经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
请参阅该页面上的示例。很好解释。
命令行上的文件名*已经在数组*中。你可以从'argv'访问它们。你能更好地解释你的问题吗? – 2013-04-28 20:49:41
argv存储命令行的所有参数,我只希望从argv [3]开始到最后一个输入文件的所有参数。我不知道提前输入文件的总数。我需要存储它们,以便我可以操纵它们中的每一个来创建我的存档文件。 – 2013-04-28 21:11:48
'char ** myarray = argv + 3;'和'int filecount = argc - 3;',那么。 – 2013-04-28 21:44:47