Аргументы командной строки и ввод файла - PullRequest
0 голосов
/ 16 сентября 2011

У меня было ужасное время с вводом файла из аргументов командной строки в прошлом семестре, и мне нужно использовать его для упражнения, над которым я работаю.Я написал простую оболочку, чтобы заставить ее работать:

prob_5.c

#include <stdio.h>

int main(int argc, char *argv[]) {
int i;
FILE *fp;
int c;

for (i = 1; i < argc; i++) {
    fp = fopen(argv[i], "r");

    if (fp == NULL) {
        fprint(stderr, "cat: can't open %s\n", argv[i]);
        continue;
    }

    while ((c = getc(fp)) != EOF) {
        putchar(c);
    }

    fclose(fp);
}

return 0;
}

Не могу вспомнить, какие команды используются для вызова моегопрограмма из командной строки.Я попытался:

gcc -o prob_5 -g -ansi prob_5.c

Я переформатировал свой компьютер с прошлого семестра, поэтому, возможно, я пропускаю системный путь?

1 Ответ

3 голосов
/ 16 сентября 2011

Похоже, ваша программа ожидает только один аргумент: имя файла.Вы также должны сначала скомпилировать его.

$ gcc -o prob_5 prob_5.c
$ ./prob_5 input_file.txt

Если он не компилируется, то у вас есть другая проблема.Что возвращается при выполнении gcc?

...