命令行参数和文件输入

上个学期我从命令行参数输入文件时遇到了可怕的时间,我需要将它用于我正在进行的练习。 我编写了一个简单的shell来让它工作:

prob_5.c

#include  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 

自上个学期以来,我重新格式化了我的电脑,所以也许我错过了系统路径?

看起来您的程序只需要一个参数:文件名。 你还必须先编译它。

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

如果它没有编译,那么你有另一个问题。 执行gcc时返回什么?