спрашивать здесь, исключительно из -за беспокойства по поводу безопасности, практичности и переносимости; Мнения приветствуются, но второстепенные.
В течение некоторого времени я работал с определением независимого от платформы слоя абстракции ввода/вывода файла с использованием std :: fileystem . Не описывая слишком много, я изложу общие идеи дизайна ad Vorbatim: < /p>
namespace fileio
{
// Opaque handles
struct Directory;
struct File;
struct FileModeFlag
{
enum flags : unsigned int {
read = 0x0001u,
write = 0x0002u,
trunc = 0x0004u,
append = 0x0008u,
binary = 0x0010u };
};
using FileModeFlags = unsigned int;
// examples of directory functions
Directory* directory_open(std::string_view dir);
Directory* subdirectory_open(const Directory* dir, std::string_view subdir);
Directory* subdirectory_open(const Directory* dir, std::string_view subdir1, std::string_view subdir2);
void directory_close(Directory* dir);
std::string_view directory_get_path(const Directory* dir);
std::string directory_get_path(const Directory* dir, std::string_view filename);
// examples of file functions
bool file_exists(const Directory* dir, std::string_view filename);
File* file_open(const Directory* dir, std::string_view filename, FileModeFlag flags);
}
< /code>
Реализация следует за этой общей идеей: < /p>
struct Directory
{
uint64_t id;
fs::path handle;
};
struct File
{
uint64_t id;
uint64_t size;
std::fstream handle;
// TODO: Store a filename? `std::string filename;`, which is _not_ the entire path!
};
< /code>
Эта идея реализована в моей библиотеке Vtek с открытым исходным кодом. Я знаю, что это работает, мне нравится использовать его, но я не уверен, что это хорошая идея . Возможно, откройте каталог, а затем добавьте в него файлы в цикл предсказуемым образом. Все при скрытии сепаратора платформы за интерфейсом каталога безопасного в использовании. Я не уверен, как решить это лучше всего, или, если это причина, по которой большинство кодов ввода -вывода файла, как правило, просто использует (полностью квалифицированные) пути файлов.
Спасибо за любую информацию!
Подробнее здесь: https://stackoverflow.com/questions/797 ... -like-this
Хорошей идеей создать интерфейс ввода -вывода ввода -вывода? ⇐ C++
Программы на C++. Форум разработчиков
-
Anonymous
1757248597
Anonymous
спрашивать здесь, исключительно из -за беспокойства по поводу безопасности, практичности и переносимости; Мнения приветствуются, но второстепенные.
В течение некоторого времени я работал с определением независимого от платформы слоя абстракции ввода/вывода файла с использованием std :: fileystem . Не описывая слишком много, я изложу общие идеи дизайна ad Vorbatim: < /p>
namespace fileio
{
// Opaque handles
struct Directory;
struct File;
struct FileModeFlag
{
enum flags : unsigned int {
read = 0x0001u,
write = 0x0002u,
trunc = 0x0004u,
append = 0x0008u,
binary = 0x0010u };
};
using FileModeFlags = unsigned int;
// examples of directory functions
Directory* directory_open(std::string_view dir);
Directory* subdirectory_open(const Directory* dir, std::string_view subdir);
Directory* subdirectory_open(const Directory* dir, std::string_view subdir1, std::string_view subdir2);
void directory_close(Directory* dir);
std::string_view directory_get_path(const Directory* dir);
std::string directory_get_path(const Directory* dir, std::string_view filename);
// examples of file functions
bool file_exists(const Directory* dir, std::string_view filename);
File* file_open(const Directory* dir, std::string_view filename, FileModeFlag flags);
}
< /code>
Реализация следует за этой общей идеей: < /p>
struct Directory
{
uint64_t id;
fs::path handle;
};
struct File
{
uint64_t id;
uint64_t size;
std::fstream handle;
// TODO: Store a filename? `std::string filename;`, which is _not_ the entire path!
};
< /code>
Эта идея реализована в моей библиотеке Vtek с открытым исходным кодом. Я знаю, что это работает, мне нравится использовать его, но я не уверен, что это хорошая идея . Возможно, откройте каталог, а затем добавьте в него файлы в цикл предсказуемым образом. Все при скрытии сепаратора платформы за интерфейсом каталога безопасного в использовании. Я не уверен, как решить это лучше всего, или, если это причина, по которой большинство кодов ввода -вывода файла, как правило, просто использует (полностью квалифицированные) пути файлов.
Спасибо за любую информацию!
Подробнее здесь: [url]https://stackoverflow.com/questions/79758117/is-it-a-good-idea-to-create-file-i-o-interface-like-this[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия