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 に答える