我試圖在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