【发布时间】:2017-11-28 18:09:59
【问题描述】:
需要制作具有以下格式的字符串并将其放入单个缓冲区[1000]。请注意,\x00 是空终止符。
@/foo\x00ACTION=add\x00SUBSYSTEM=block\x00DEVPATH=/devices/platform/goldfish_mmc.0\x00MAJOR=command\x00MINOR=1\x00DEVTYPE=harder\x00PARTN=1
所以本质上我需要将以下以 null 结尾的字符串打包到一个缓冲区中
@/foo
ACTION=add
SUBSYSTEM=block
DEVPATH=/devices/platform/goldfish_mmc.0
MAJOR=command
MINOR=1
DEVTYPE=harder
PARTN=1
我该怎么做?
【问题讨论】:
-
char buffer[1000] = "@/foo\000ACTION=add\000SUBSYSTEM=block\000...等页 -
"foo\x00ACTION"不起作用,因为\x00AC在这里被视为单个字符(A 和 C 也是十六进制数字),如果这让您感到困惑。 -
您可以使用
\0而不是\x00,这将避免\x00AC被视为宽字符的问题,事实上\0是指定的首选C 方式NUL -
你是如何得到这个 list 字符串的?问的原因是,根据他们来自哪里,可能有更快的方法来做到这一点
-
@AhmedMasud 我更喜欢
\000,因为当你有两个字符串“abc”“123”时,"abc\0123"不是预期的