Когда я компилирую следующий код и запускаю на нем 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)