Что касается вашего другого вопроса:
Я смутно припоминаю, что где-то читал
что все оригинального стандарта
библиотечные функции были ограничены
7-символьные имена либо останутся
совместим с Фортраном, или потому что в
оригинальный стандарт C, идентификаторы
длиннее 7 символов
считается эквивалентным их
7-значный префикс или что-то. Можно
Кто-нибудь подтвердит / опровергнет / уточнит это?
В исходном стандарте ANSI C говорилось, что в реализации определено, сколько символов внешнего символа будет значимым, но что оно должно быть не менее 6 символов (и реализация может быть нечувствительна к регистру для них). Это было сделано потому, что в далеком прошлом системы часто имели такой тип ограничений (будь то библиотеки FORTRAN, ограничения компоновщика или что-то еще).
Таким образом, хотя вы видите внешние имена длиннее, чем в стандартной библиотеке, ни одно из этих имен не начинается с одинаковой последовательности из 6 символов.
FWIW, C99 увеличил минимум до 31 символа. Стандарт C ++ (1998) говорит, что реализация должна документировать, насколько значимо внешнее имя, и предлагает, чтобы оно было не менее 1024 символов. Я знаю, что Borland C ++ 5.5 имел ограничение примерно в 250 символов, что вызывает проблемы, особенно с использованием шаблонов.