Я пытаюсь изменить команду cat
в MINIX 3.2.1, и у меня возникли некоторые проблемы с ней. Я хочу добавить флаг -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
фактически изменилось, так как я получаю строку "новой строки", а также строку ".exrc" (похоже, я должен был поместить это в условие if
, но в любом случае), но -H
- это не распознан.
Что я сделал не так? Что мне действительно нужно сделать, чтобы добавить новый флаг? Заранее спасибо.