[bash.org.ru] [IT Happens] [zadolba.li]

IT Happens

Клиент и саппорт. Разработчик и заказчик. Программист и программа. Вести с фронтов.

#2165: Зверские байты

7 февраля 2010, 11:00

рейтинг: 1075

Суббота, середина дня. Сижу дома, делаю лабораторную. Задание несложное: программа должна из командной строки получить имя файла и удалить его. Есть лишь небольшая загвоздка: весь код должен быть на ассемблере. Ладно, наваял 66 строк кода, добавив кроме того сообщения об ошибках вроде «файл не найден» и «файл невозможно удалить». Запускаю — всё работает, ещё раз — уже не хочет. Программа упорно мне доказывает, что «файл невозможно удалить».

Пробую разные варианты. Передаю аргументом командной строки существующий файл, вбиваю случайную последовательность чисел — опять двадцать пять, «невозможно удалить», и всё тут.

Ладно, не первый день за рулём. Запускаю отладчик и медленно, смакуя каждую команду, прогоняю код перед глазами. Вуаля, всё работает, если файл есть — удаляется, если нет — появляется сообщение об этом. Если же просто запускать программу, старая история повторяется. Ба, да исполняемый файл весит ровно 666 байт — нехорошее число преследует меня!

Мучился я довольно долго. Программа исправно работает под отладчиком, а так — ни в какую. В конце концов посетила меня одна смутная догадка, я быстро добавил пару строк в код, и всё заработало. Уж не знаю, то ли моя догадка оказалась верна, то ли изменившийся на несколько байтов размер программы освободил её от проклятия.

А размер я всё-таки подогнал обратно под 666 байтов, урезав сообщения об ошибках. Скоро буду защищать эту лабораторную и посмотрю, не начнёт ли она оскорблять преподавателей или пытаться отформатировать винчестер. Я от нёе теперь всякого ожидаю...

 
 
текст или номер истории
реклама
обратная связь
Хотите разместить рекламу?
Информация для рекламодателей.

Вопросы, предложения, что-то не так на сайте? Пишите в саппорт!
статистика
Рейтинг@Mail.ru