Чудеса coreutils

Apr 10, 2009 02:07


blinalexya рассказывал недавно, что на его работе ls падал в корку при обработке директорий с ~100'000'000 файлов. Не знаю, что за PohmelFS там использовалась, но учитывая тот факт, что ls сортирует имена файлов и пытается расставить их по нескольким колонкам - упасть, отожрав кучу памяти, оно действительно шансы имело.

Я же на днях наткнулся на другую смешную особенность коры утилит - seq работает с вещественными числами, а не с целыми, как может сложиться впечатление после сотни HOWTO, упоминающих код в духе $(seq 1 100). С целыми числами около нуля всё в порядке, но, если выйти за диапазон точности вещественного числа, начинают лезть артефакты, кстати, показывающие, что промежуточные вычисления делаются с точностью более высокой, чем double: $ i=100000000000000000000; seq $i $(echo $i + 10 | bc) | uniq -c
5 100000000000000000000
7 100000000000000000008
$ i=1000000000000000000000; seq $i $(echo $i + 10 | bc) | uniq -c
33 1000000000000000000000

Уронить seq в core таким образом не получается, но загнать в бесконечный цикл - легко.

Да, и еще к вопросу о точности. gasadov давненько провел чудный эксперимент и закодировал фотографию в mp3. Что я могу сказать - даже в 320kbps преобладает теплый ламповыйцветной электронойз.

linux, coreutils, jpeg-o-mp3, **it, bash, bug

Previous post Next post
Up