Как передать в нулевом символе в параметре командной строки в C?

Я все еще хотел бы знать, как передать в нулевом символе как параметр командной строки, возможно так, чтобы единственная строка могла быть передана в как аргумент в форме:

"to\0be\0or\0not\0to\0be\0"

И затем проанализируйте его. Однако программа рассматривала бы эту строку как:

"к \\0be \\0or \\0not \\0to \\0be \\0"

Как я могу работать вокруг этого? Есть ли какой-либо путь?

13
задан Joey 17 February 2010 в 18:26
поделиться

2 ответа

Не можете.

Программа на C принимает аргументы в виде строк с нулевым завершением. По определению такая строка не может содержать нулевой символ.

Если вы хотите передать нулевой символ, вы должны в некоторой степени закодировать его с помощью некоторого синтаксиса, а затем ваша программа на C должна декодировать его, интерпретируя этот синтаксис.

18
ответ дан 1 December 2019 в 21:52
поделиться

Строки C заканчиваются нулем, поэтому передача строк, содержащих символы NUL, в C. невозможна :-P

Теперь, если вам просто нужен способ конвертировать \ 0 (в пользовательском вводе, т.е. «\\ 0» как строку C) в фактические символы NUL, это другое дело. В этом случае вашей программе просто нужен синтаксический анализатор для обработки \ 0 как разделителей.

6
ответ дан 1 December 2019 в 21:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: