【发布时间】:2020-08-06 18:39:18
【问题描述】:
当我编译以下代码并在其上运行strace 时,我可以看到它在args[] 数组中添加了两个额外的元素。
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(int argc, char **argv)
{
char *args[2];
args[0] = "/bin/ls";
args[1] = "-lh";
execve(args[0], args, NULL);
return 1;
}
strace 表示这是实际调用的内容:
execve("/bin/ls", ["/bin/ls", "-lh", "\340\301\361\267", "\1"], NULL)
【问题讨论】:
-
将
args[2];替换为args[3];并添加args[2] = NULL;