powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Коллекция в C99
6 сообщений из 6, страница 1 из 1
Коллекция в C99
    #39387964
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подкиньте примеров коллекций на Си. Есть много текстовых файлов в папке, с гиперссылками друг на друга. Нужно пройти по всем ссылкам в файлах, начиная с главного, и собрать файлы в коллекцию (и не зациклится при перекрестных ссылках)
Гиперссылка на файл, видимо должна быть ключом для его получения из коллекции. Ну сериализацию тоже чтобы была.

Короче говоря, эту кучу текстовых файлов с данными, лежащими в папке, надо перетащить внутрь программы, чтобы брать их не с диска, а из памяти. Как мне кажется лучший вариани - коллекция. Если не прав, то подскажите как.
...
Рейтинг: 0 / 0
Коллекция в C99
    #39387973
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eolt,

std::map<filename, uri>
...
Рейтинг: 0 / 0
Коллекция в C99
    #39387974
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой, в С99.

Ну придется самому поискать реализацию map на С
...
Рейтинг: 0 / 0
Коллекция в C99
    #39388057
Пётр Седов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EoltПодкиньте примеров коллекций на Си. контейнеры в GLib
...
Рейтинг: 0 / 0
Коллекция в C99
    #39388153
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eolt,

Задача полного обхода графа.
В глубину или в ширину.
...
Рейтинг: 0 / 0
Коллекция в C99
    #39388347
dbpatch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EoltПодкиньте примеров коллекций на Си.
Самому ничего писать не нужно, есть куча вариантов разной степени легко-тяжеловесности.

К примеру:

https://github.com/srdja/Collections-C
https://troydhanson.github.io/uthash/

ну и glib, если тебя не страшит этот монстр зависимостей.


EoltЕсть много текстовых файлов в папке, с гиперссылками друг на друга. Нужно пройти по всем ссылкам в файлах, начиная с главного, и собрать файлы в коллекцию (и не зациклится при перекрестных ссылках)
Гиперссылка на файл, видимо должна быть ключом для его получения из коллекции.
звучит, если честно, как кандидат на использование BDB, LMDB, короче, inmemory database

EoltНу сериализацию тоже чтобы была.
см выше про https://symas.com/offerings/lightning-memory-mapped-database/
https://en.wikipedia.org/wiki/Berkeley_DB


EoltКороче говоря, эту кучу текстовых файлов с данными, лежащими в папке, надо перетащить внутрь программы, чтобы брать их не с диска, а из памяти. Как мне кажется лучший вариани - коллекция. Если не прав, то подскажите как.
в первом приближении тебе может очень здорово помочь mmap(). для 64-х битных систем это самое оно - текстовый файл просто начинает лежать как массив байтов по адресу такому-то, ценой микросекунды системного вызова, никакого I/O более не нужно.

для адресации элементов из базы данных можно использовать не прямые указатели, а offset-ы
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Коллекция в C99
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]