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

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

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

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

Задача полного обхода графа.
В глубину или в ширину.
...
Рейтинг: 0 / 0
20.01.2017, 12:56
    #39388347
dbpatch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коллекция в C99
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
Форумы / C++ [игнор отключен] [закрыт для гостей] / Коллекция в C99 / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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