Я все равно хотел бы знать, как передать нулевой символ в качестве аргумента командной строки, возможно, чтобы одна строка могла быть передана в качестве аргумента в форме:
“В \ 0be \ 0 или \ 0not \ 0то \ 0be \ 0”
А потом разобрать его. Однако программа будет обрабатывать эту строку как:
“К \\ 0be \\ \\ 0 или 0not \\ 0то \\ 0be \\ 0”
Как я могу обойти это? Там в любом случае?
Ты не можешь.
Программа C принимает аргументы как строки с нулевым завершением. Такая строка не может содержать нулевой символ по определению.
Если вы хотите передать нулевой символ, вы должны несколько закодировать его с некоторым синтаксисом, и ваша программа на C должна затем декодировать его, интерпретируя этот синтаксис.
Строки C имеют нулевое завершение, поэтому передаваемые строки, содержащие символы NUL, невозможны в C.: -P
Теперь, если вам просто нужен способ конвертировать \0
(в пользовательский ввод, т. "\\0"
в виде строки C) в фактические символы NUL, это другое дело. В этом случае вашей программе нужен только синтаксический анализатор для обработки \0
качестве разделителей.