Tom*_*Tom 13 c command-line escaping
我仍然想知道如何传入一个空字符作为命令行参数,也许这样可以将一个字符串作为参数传递到表单中:
"到\ 0BE\0or\0not\0℃至\ 0BE\0"
然后解析它.但是程序会将此字符串视为:
"到\\ \\ 0BE \\ 0or \\ 0not \\ 0℃至\\ 0BE 0"
我该如何解决这个问题?有什么办法吗?
Tho*_*nin 18
你不能.
C程序接收参数为零终止字符串.根据定义,这样的字符串不能包含空字符.
如果要传递空字符,则必须使用某种语法对其进行某种程度的编码,然后您的C程序必须通过解释该语法对其进行解码.
C字符串以空值终止,因此在C. :-P中无法传递包含NUL字符的字符串
现在,如果你只是想要一种方法将\0(在用户输入中,即"\\0"作为C字符串)转换为实际的NUL字符,那就另当别论了.在这种情况下,您的程序只需要一个解析器来\0作为分隔符.