Я не уверен, что вы подразумеваете под "lost stdio.h
", но многие функции времени выполнения C, включая прототипы в stdio.h
, реализованы с использованием системных вызовов.Без работающей ОС эти системные вызовы не будут работать.
Можно написать код C, который работает без ОС, например, большинство распространенных загрузчиков имеют лишь небольшое количество ассемблера и в основном кода C.Хитрость заключается в том, чтобы избежать использования библиотек времени выполнения.Альтернативами системным вызовам, например, для отображения, являются вызовы BIOS и аппаратный ввод / вывод.
Чтобы взять только один пример, в дополнение к динамическому распределению, fopen
в режиме чтения требуются следующие операции низкого уровня:
- Чтение блока данных из хранилища
- Чтение метаданных файловой системы (часто это суперблок и корневой каталог)
- Обработка метаданных файловой системы, чтобы узнать, гдесодержимое файла сохраняется
- Создание объекта FILE, который содержит достаточно информации для
fread
и fgetc
, чтобы найти данные на диске
У вас нет ОС дляВ любом случае, ваш код C должен будет реализовать драйвер (возможно, вызывающий BIOS) для чтения блоков, а также реализовать поведение других шагов.