Что означает низкий уровень ввода / вывода? Как мне реализовать это в этой программе?
Мне нужно написать программу на C, которая принимает три аргумента командной строки:
- входной файл один
- входной файл два
- имя выходного файла
Программа должна считывать данные из файлов 1 и 2 и объединять первый файл с последующим вторым файлом, в результате получается третий файл.
Кажется, это должно быть довольно просто, но одно из условий назначения - использовать только низкоуровневый ввод-вывод.
Что именно это означает (низкоуровневый ввод / вывод)?
2 ответа
Чтобы ответить на единственный вопрос (что такое низкоуровневый ввод / вывод), это, вероятно, означает собственные функции ввода / вывода операционной системы.
В POSIX это будет, например, open()
, close()
, read()
а также write()
,
Например, в Windows CreateFile()
, CloseHandle()
, ReadFile()
а также WriteFile()
,
Низкий уровень в основном означает уровень ОС. Это можно сделать с помощью системных вызовов. Разработчики приложений часто не имеют прямого доступа к системным вызовам, но могут получить к ним доступ через интерфейс прикладного программирования (API). Функции, включенные в API, вызывают фактические системные вызовы. Используя API, можно получить определенные преимущества:
Переносимость: пока система поддерживает API, любая программа, использующая этот API, может компилироваться и запускаться.
Простота использования: использование API может быть значительно проще, чем использование реального системного вызова.
Для получения дополнительной информации о системных вызовах посмотрите здесь, здесь и здесь.
Для вашей программы посмотрите здесь.