【发布时间】:2019-08-09 03:50:38
【问题描述】:
我正在尝试修改 MINIX 3.2.1 中的 cat 命令,但遇到了一些问题。我想添加-H 标志,以便在使用时,在其内容之前打印文件名。我在 cat.c 中添加了一些代码(参考原始行号):
第 64 行(Hflag 变量):
int Hflag, bflag, eflag, fflag, lflag, nflag, sflag, tflag, vflag;
第 85 行('H' 大小写):
case 'H':
Hflag = 1;
break;
case 'b':
第 130 行(Hflag 参数):
if (Hflag || bflag || eflag || nflag || sflag || tflag || vflag)
第 142 行(添加 fprintf 以确保确实将 cat.c 添加到重新编译的 MINIX):
fprintf(stdout, "new line\n");
FILE *fp;
第 157 行(应该打印文件名的行):
fprintf(stdout, "%s\n", *argv);
filename = *argv++;
问题是重新编译后(/usr/src 中的make build),cat 似乎无法识别新的-H 标志。如果我输入
# cat -H .exrc
我明白了
cat: unknown option -- H
但是,如果我输入
# cat -b .exrc
I get
new line
.exrc
1 set autoindent autowrite report=2 showmatch
所以cat 实际上已经改变了,因为我得到了“新行”行和“.exrc”行(看起来我应该把它放在if 条件中,但无论如何),但-H 是无法识别。
我做错了什么?我实际上需要做什么才能添加新标志?提前致谢。
【问题讨论】: