-2
,它打印此:的snprintf不会创建正确的命令
$4 = "sudo asterisk -rx \"pjsip show aor 101\"\000\000b\[email protected]\000\000\000\000\000p\[email protected]\00 ... and so on
Normaly它应该只是创建简单的命令作为一个char?如果我是对的。这会导致另一个问题,因为popen()不能创建合适的流。
这里是我的重要代码:
程序不完整,无法重现。什么是行定义**为**?一件事。另外,请注意,gdb显示你有一个内存转储。 *字符串*结束于零字节('\ 000')。 – DevSolar
'command'(也就是'printf(“[%s] \ n”,command)'')的诊断信息会告诉你什么传递给'popen()'。同样,如果您打印返回的缓冲区('printf(“[%s] \ n”,buff);'),它会告诉您数据中是否存在“someth”。你没有检查'fgets()'的返回状态 - 你不知道它是否有任何数据,所以你不知道'buff'的内容是否可能是相关的。添加到printf格式的方括号可帮助您识别尾随空格或嵌入的换行符或回车符等。我通常使用它们。 –
我看不到任何代码。 – Gerhardh