2

私は C プログラムと Linux の初心者ですが、このプログラムをコンパイルして実行するにはどうすればよいですか?

gcc example.cその後試してみましたが、次./a.outのようなエラーが発生しますinput file cannot be opened(このエラーを読み取りメソッドに書きました)

// example.c
int main(int argc, char *argv[])
{
    char* input = argv[1];
    read(input);

    char* output = argv[2];
    write(output);

    return 0;
} 

ありがとう。

4

2 に答える 2

3

あなたのプログラムはうまく動作しません -たとえば、 readandwriteに十分な引数を提供していません (POSIX read(2)andwrite(2)を呼び出すつもりだと仮定すると)。

実際の質問に答えるには、問題は、引数を提供していないことのようです。次のように実行する必要があります。

./a.out FILE1 FILE2

FILE1入力ファイルの名前と出力ファイルの名前に置き換えFILE2ます。

于 2012-10-13T18:23:28.080 に答える
1

まずread()write()両方とも 3 つの引数を取ります (1 つだけ指定)。

次に、次のように使用する必要があります。

int ifilehandle = open(argc[1],O_RDONLY,S_IREAD);
int ofilehandle = open(argc[2],O_WRONLY,S_IWRITE);
char buffer[32767];
read(ifilehandle,&buffer,32766);
write(ofilehandle,&buffer,32766);
close(ifilehandle);
close(ofilehandle);

3 番目に、a.out は次のように呼び出す必要があります。

./a.out filename1.extension filename2.extension
于 2012-10-13T18:40:11.933 に答える