Новичок делает K & R - PullRequest
       25

Новичок делает K & R

4 голосов
/ 01 августа 2009

Я только начинаю программировать и прохожу через K & R, чтобы попытаться выучить C. Я попал в раздел об аргументах командной строки (5.10), но теперь я в тупике. Каждый раз, когда я пытаюсь открыть программу, написанную мной с аргументами командной строки, мне говорят, что файл X, где X является аргументом, не существует.

`gcc -o find find.c

открытый поиск теста

Файл / Documents / Learning_C / test не существует.

Есть предложения? Спасибо

Ответы [ 3 ]

3 голосов
/ 01 августа 2009

В какой системе вы находитесь? В Unix / Linux вы компилируете и запускаете свой исполняемый файл через:

gcc -o find find.c
./find test

Как уже отмечали другие , когда вы префикс вашего бинарного файла с "./", не будет никаких конфликтов имен. Однако, если вы сделали find доступным в вашем $PATH, у вас могут возникнуть конфликты с find и test - стандартными программами с большинством * nix-дистрибутивов ... Может быть, вы можно выбрать более конкретные имена (например, . / myFind testArg )

1 голос
/ 01 августа 2009

Попробуйте дать исполняемому файлу другое имя.

Я подозреваю, что вы выполняете команду system find, которая ищет каталог с именем 'test'.

Или попробуйте принудительно выполнить, выполнив

./find toto

Редактировать: Важное значение имеет добавление ./ к команде, поскольку она сообщает оболочке выполнить поиск в текущем каталоге, а не первый «поиск», который существует в вашем PATH. Обычно рекомендуется, что у вас нет. (текущий каталог) в вашем PATH по соображениям безопасности.

НТН

P.S. Забыл сказать хороший для работы через K & R. Я только что закончил делать то же самое после тридцати лет работы в Си, и было здорово вернуться и освежить сознание!

0 голосов
/ 02 августа 2009

Вместо того, чтобы заставлять нас всех догадываться, что именно вы делаете неправильно, возможно, вам следует вставить программу, которую вы используете для упомянутой иллюстрации?

...