Взаимодействие с терминалами -- очень развесистая тема в виду её древности. Например, терминал может поддерживать ANSI escape-последовательности, ими можно получать и устанавливать координаты курсора.
Отвечая на ваш вопрос про порядок: согласно https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout в ext2 каталоги были линейным списком, но начиная с ext4 (или 3?) они -- b-дерево индексированное хешем от имени файла, следовательно в ext2 должно работать ровно как вы хотите, начиная с ext4 (или 3?) со включённым флагом EXT4_INDEX_FL -- видимо только самому их сортировать.
> Последовательность чтения указывается именно здесь.
последовательность чтения файлов -- да. Последовательность чтения данных -- нет. Файлы у вас немаленькие, в inode целиком наверно не влезают.
Касаемо вашего оригинального подхода: значение операнда sizeof никогда не вычисляется (см. например, стандарт С++98, п. 5.3.3:1), тип его известен на этапе компиляции. sizeof(v[0]) или sizeof(v.front()) будет работать правильно и даже для пустого контейнера.
> ...есть описание грамматики на 15 страниц. Только я не видел ни в gcc ни в clang чтобы её использовали в чистом виде (в смысле подавали в bison)
В gcc до 4й версии парсер С был на бизоне. См. gcc/c-parse.y в релизных архивах или gcc/c-parse.in в гите.
@merhalak например какой компилятор? Это место стандарта не менялось в C как минимум с C99 (возможно и раньше, но у меня нет ни K&R ни C89 под рукой), ни в С++ с С++98. Если компилятор ему не следует, это его проблемы, не?
> первые 6 из которых будут заполнены значениями, остальные 14 будут иметь случайные значения
> первые 5 из которых будут заполнены значениями, остальные 15 будут иметь случайные значения.
@risik с чего бы остальные были случайными? Остальные будут нулями, см. С99, 6.7.8:21:
If there are fewer initializers in a brace-enclosed list than there are elements or members of an aggregate, or fewer characters in a string literal used to initialize an array of known size than there are elements in the array, the remainder of the aggregate shall be initialized implicitly the same as objects that have static storage duration.