Аркуші

ПРАПОРЦІ OPEN()

ПʼЯТЬ прапорців створення файлу — і чому O_CREAT|O_EXCL це не швидша перевірка, а перевірка й створення однією неподільною дією

Аркуш зроблено як памʼятку, а не як таблицю: угорі те, заради чого його вішають на стіну й читають з іншого кінця кімнати, нижче — повна довідка дрібнішим.

Три розміри в одному архіві — від аркуша на холодильник до плаката на стіну.

Завантажуючи, ви погоджуєтесь з Умовами.

Формати
A4 · A3 · A2
Що ви отримаєте
PDF, готові до друку, по одному на кожен формат, з усіма літерами в кривих — нічого не треба ставити й ніщо не попливе.
Предмет
код · усім · памʼятка · кабінет

Ліворуч — доріжка з окремою перевіркою і щілиною між кроками; праворуч — одна дія без щілини. Нижче — ті самі пʼять прапорців дослівно зі зводу й шість наслідків, перевірених файловою системою.

O_APPEND: ДВОЄ ПИШУТЬ ПО ЧЕРЗІ Й НЕ ПЕРЕПИСУЮТЬ ОДНЕ ОДНОГО

Про O_APPEND звід каже: «the file offset shall be set to the end of the file prior to each write and no intervening file modification operation shall occur between changing the file offset and the write operation» — тому два дескриптори, що дописують той самий файл по черзі, ніколи не переписують один одного.

Про сам виклик звід визнає: «does not specify the behavior of concurrent writes to a regular file from multiple threads, except that each write is atomic» — атомарний лише один write(), а куди він потрапить без O_APPEND, вирішує застарілий зсув, порахований наперед, і саме це переписує чужий запис.

Що на аркуші

  • Ліворуч — доріжка з окремою перевіркою і щілиною між кроками; праворуч — одна дія без щілини. Нижче — ті самі пʼять прапорців дослівно зі зводу й шість наслідків, перевірених файловою системою.
  • Колір несе зміст, але зміст не тримається лише на кольорі — аркуш читається і в ЧБ.
  • Жодного пояснення про те, як ми його робили: на аркуші лише те, що потрібно читачеві.

Друк

  • Три розміри в архіві: A4 — 210×297 мм, A3 — 297×420 мм, A2 — 420×594 мм.
  • Увесь текст переведено в криві. Шрифти ставити не треба, і ніщо не попливе на чужій машині.
  • Білий фон і ощадна заливка — аркуш друкується на побутовому принтері без відра фарби.
  • Поля не менші за 10 мм: побутовий принтер не друкує під обріз.
  • Жоден штрих не тонший за 0,3 мм, тож нічого не зникне при друці.

Чому цим числам можна вірити. Кожне лічильне число тут обчислене з даних, а не набране руками, і аркуш проходить 7 незалежних перевірок, перш ніж його дозволено зібрати: скільки елементів, у якому порядку і саме твердження у виділеному блоці. Не пройде бодай одна — файла просто не буде.

Схоже