在MINIX中将自定义标志添加到CAT命令

时间:2019-03-18 17:38:20

标签: c minix

我正在尝试在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++;

问题在于重新编译后(make build中的/usr/src),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实际上已经改变了,因为我得到了“ new line”行以及“ .exrc”行(看起来我应该把它放在if条件中,但是无论如何),但是-H无法识别。

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

1 个答案:

答案 0 :(得分:6)

由于Minix中的creatHttpServer()使用了vertx,因此您还需要在 import os parts = os.path.splitext(__name__) module_name = parts[len(parts) - 2] 调用中添加一个新选项(其中列出了所有可能的选项)。

您提供的代码无法执行此操作。您也可以咨询cat