bash.im ithappens.me zadolba.li
7989

Пересортица

9 декабря 2011, 15:45

Я первокурсник мехмата МГУ. В числе прочего у нас, разумеется, есть предмет «работа на ЭВМ» — фактически, программирование на C.

Решаем задачу сортировки. Я, как один из наиболее врубающихся, всё сдал и бегаю по аудитории, подсказывая другим, где они ошиблись. Подзывает один из одногруппников: программа запускается и сразу же улетает в бесконечный цикл, спасает только Ctrl+C.

Сразу оговорюсь: никакой толковой отладки мы не изучали (хотя надо бы, наверное). Ладно, смотрю в код, предлагаю вбить отладочную печать. Не выводится ничего — даже то, что поставлено в самое начало процедуры сортировки. Всё, что до этого, вне подозрения: там зациклиться вообще негде. Чешу репу.

Тут меня подзывает другой одногруппник — иду разбираться. Вскоре снова оказываюсь рядом с тем «зациклившимся», и он спрашивает:

— А как можно программу запустить — там, точка, палочка, что-то подобное?…

Понимаю, что речь идёт о запуске с указанием текущей папки — работали мы в Федоре из-под терминала и запускали соответствующе. Говорю:

— Точка, слэш, название. Попробуй — может, сработает…

Через пару секунд:

— Есть!

И только тут до меня дошло. Программный файл назывался sort, и при попытке его запустить, просто набрав имя, без пути, система вместо этого выполняла стандартную команду sort и, разумеется, ждала появления входных данных. Когда же одногруппник набрал ./sort, всё запустилось как надо.

Вот так-то, дорогие коллеги! Иногда ошибка не в коде — просто вы с системой друг друга не поняли.