На страницах gperf info утверждается, что если вы укажете -l
, то
Ключевые слова во входном файле могут содержать байты NUL, записанные в строковом синтаксисе как \ 000 или \ x00, и код, сгенерированный gperf, будет обрабатывать NUL как любой другой байт
Однако, когда я запускаю этот входной файл через gperf -L C++ -l
:
foo
\000bar\000
\x00baz\x00
bat
, я получаю:
<snip>
static const char * wordlist[] =
{
"", "", "",
"foo",
"", "", "", "",
"bat",
"", "",
"\\x00baz\\x00",
"", "", "", "",
"\\000bar\\000"
};
<snip>
Похоже, что трактует \000
и \x00
как буквальные значения, а не как нулевые байты.
Как правильно использовать нулевые байты в моих строках gperf?