我试图在Linux上使用execve()
从unistd.h
产生一个新进程。我试过给它传递下面的参数execve("/bin/ls", "/bin/ls", NULL);
但没有结果。我也没有得到一个错误,该程序刚刚退出。这是为什么发生这种情况的原因吗?我试图以root用户和普通用户身份启动它。我需要使用execve()
的原因是因为我想获得它在装配呼叫工作,像这样execve()无法在C中启动程序
program: db "/bin/ls",0
mov eax, 0xb
mov ebx, program
mov ecx, program
mov edx, 0
int 0x80
谢谢!
Gotcha,'man execve'表示一个数组,我假设只是一个普通的字符串会做。获得的教训,谢谢! – user99545