26: execve(prog[0],prog,env); 27: return 0; execve() does not return on success, and the text, data, bss, and stack of the calling process are overwritten by that of the program loaded.
для чего return 0;? 1003 *
return 0;
Я предлагаю прекратить это предупреждение компилятора.
$ cat | gcc -W -Wall -x c - int main(){} ^D <stdin>: In function 'main': <stdin>:1:1: warning: control reaches end of non-void function
Это также порадует статические анализаторы и предупреждения IDE об одном и том же.
Эта строка в случае, если execve() каким-то образом завершается с ошибкой и возвращает. Теоретически, это никогда не должно происходить, но иногда так и происходит. Часто возвращаемое значение устанавливается на какое-то случайное число, чтобы указать, что произошла ошибка.
execve()