Всі ми знаємо, як дискусія про те, яка найкраща операційна система викликала багато вогняних воєн. Ваша мета зараз - надати рішучий "доказ" того, що ваша улюблена операційна система краща ... ах, ні, набагато краще, надати рішучий "доказ", що інша операційна система погана.
Завдання: Напишіть програму, яка виконує деякі обчислення, і вона працює правильно щонайменше на одній ОС і неправильно на хоча б іншій.
- програма повинна зробити хоча б деякі обчислення, тому вона повинна прочитати простий вхід (бажано, на стандартному вході, або якщо з файлів, якщо ви хочете, але неправильне використання маленького ендіана / великого ендіана було б не тільки дешевим, але й очевидним) , і забезпечити деякий вихід залежно від введення. Розрахунки повинні бути осмисленими та обґрунтованими, наприклад, вирішуючи реальне життя чи математичну задачу.
- слід вказати обидві операційні системи, вказавши, на якій з них вона буде працювати правильно, а на якій - не. Обидві операційні системи повинні бути добре відомими, і приблизно з одного і того ж часу (тому немає DOS 1.0 проти сучасної ОС). Радимо надати короткий опис причини різниці (особливо якщо ви підозрюєте, що багато людей цього не усвідомлюють) у тегах-спойлерах.
подобається це
причина різниці має бути тонка, тому ні,
#ifdef _WIN32
ні подібне, будь ласка! Пам'ятайте, ваша мета - "довести", що ця конкретна система погана, тому люди не повинні мати можливість (негайно) помітити ваш трюк!якщо у вашому коді є дуже дивна або дуже незвична частина, ви повинні виправдати це в коментарях, чому він є. Звичайно, це "виправдання" може / буде великою брехнею.
Оцінка:
Це не гольф! Код повинен бути добре організованим та простий. Пам'ятайте, ваша мета - сховати помилку в ній, щоб люди не підозрювали про це. Чим простіший код, тим він менш підозрілий.
Переможець визначатиметься голосами. Найбільше голосів приблизно через 10 днів після першого дійсного подання виграє. Як правило, відповіді, де код легко читати та розуміти, але помилка добре прихована, і навіть якщо вона виявлена, її можна віднести до помилки, а не до злості. Аналогічно, варто коштувати набагато більше, якщо помилка просто викликає неправильний результат, а не просто спричиняє збій програми або нічого не робить.
Як завжди, я позбавляю права обирати відповідь як переможець, якщо вона не на 10% або на 1 бал нижче за ту, яка має найбільше голосів, за будь-якими суб'єктивними критеріями.
make (1)
працює належним чином на кожній коробці Unix та неправильно на деяких вікнах. Не через ОС, а через файлові системи. Будь-яка файлова система, яка зберігає дати модифікації файлів з низькою точністю, може не працюватиmake
належним чином на швидкій машині.