Я пишу веб-приложение C / CGI.Есть ли библиотека для разбора строки запроса на что-то вроде GHashTable?Я мог бы написать свой, но, конечно, это не стоит усилий, чтобы изобрести колесо.
GHashTable
Библиотека uriparser может анализировать строки запроса в пары ключ-значение.
uriparser
Если вы действительно пишете C и набор ключей известен, вам лучше хранить значения в struct вместо некоторой раздутой хэш-таблицы.Таблица static const:
struct
static const
offsetof
и используйте его для разбора строки запроса и заполнения структуры.
Вы можете найти полезное семейство функций ap_getword из библиотеки Apache Portable Runtime (apr).
Большинство подпрограмм разбора строк принадлежит семейству ap_getword *, котороевместе обеспечивают функциональность, аналогичную функции Perl split ().Каждый член этого семейства может извлечь слово из строки, разделив текст на разделители, такие как пробелы или запятые.В отличие от Perl split (), в которой вся строка разбивается сразу и части возвращаются в списке, функции ap_getword * работают с одним словом за раз.Функция возвращает следующее слово каждый раз, когда оно вызывается, и отслеживает, где оно было, путем увеличения указателя.
Вы можете найти в Google "ap_getword(r->pool" "httpd.h" и найти соответствующий исходный код для изучения.
"ap_getword(r->pool" "httpd.h"