C-将自定义标志添加到minix中的CAT命令中



我正在尝试修改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 linen");
FILE *fp;

第157行(应该打印文件名的行):

fprintf(stdout, "%sn", *argv);
filename = *argv++;

问题在于重新编译(make build中的CC_6),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尚未识别。

我做错了什么?我实际上需要做什么才能添加新标志?预先感谢。

由于Minix中的cat使用getopt,您还需要在getopt调用中添加新选项(列出所有可能的选项)。

您提供的代码没有这样做。您还可以咨询man getopt

相关内容

  • 没有找到相关文章

最新更新