2013-04-28 84 views
0

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

+3

命令行上的文件名*已经在数组*中。你可以从'argv'访问它们。你能更好地解释你的问题吗? – 2013-04-28 20:49:41

+0

argv存储命令行的所有参数,我只希望从argv [3]开始到最后一个输入文件的所有参数。我不知道提前输入文件的总数。我需要存储它们,以便我可以操纵它们中的每一个来创建我的存档文件。 – 2013-04-28 21:11:48

+1

'char ** myarray = argv + 3;'和'int filecount = argc - 3;',那么。 – 2013-04-28 21:44:47

回答

0

我真的不应该是勺子喂什么看起来像一个家庭作业的问题,但自从我上次触碰海湾合作委员会已经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

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

相关问题