(примечание: этот вопрос касается какой-то школьной работы, которую я делаю. Мне не нужно знать, как это реализовать, просто нужно знать, возможно ли это и как я могу узнать о ней больше)
Я хотел бы использовать буфер уровня пользователя для файла, используя только дескриптор файла и не используя FILE *.Я знаю, что stdio.h
имеет, по крайней мере, 1 пользовательский буфер для всех функций *printf()
и *scanf()
.
Мой вопрос:
Меня попросили сделать систему, которая используетwrite()
функция Linux.Эта функция является системным вызовом.Задача здесь состоит в том, чтобы выполнить небольшую дополнительную задачу, которую мне дал профессор:
Использовать или создать буфер уровня пользователя для записи этих файлов.
Поскольку я использую функцию write и использую файловые дескрипторы, я не могу использовать ни одну из функций fprintf()
, поскольку задокументировано, что смешивание системных вызовов (write и * fprintf) имеет неопределенный результат.
Есть лиальтернативный способ использовать тот же буфер, что и stdio, или есть ли эквивалентный буфер, предлагаемый библиотеками linux для записи в этот файл?(Примечание: мне также нужно знать, как очистить этот буфер)
У меня нет особых проблем с созданием буфера fifo, но если я смогу сохранить некоторую работу, это будет полезно.
Примечание: мой код для Linux.Если для этого есть переносимый код, расскажите, пожалуйста, о переносимом коде.Если нет переносимого кода, пожалуйста, дайте мне способ Linux.