Какова черта после execve, поскольку она не возвращается в случае успеха? - PullRequest
1 голос
/ 15 апреля 2011
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 *

Ответы [ 2 ]

1 голос
/ 17 апреля 2011

Я предлагаю прекратить это предупреждение компилятора.

$ 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 об одном и том же.

0 голосов
/ 13 февраля 2019

Эта строка в случае, если execve() каким-то образом завершается с ошибкой и возвращает. Теоретически, это никогда не должно происходить, но иногда так и происходит. Часто возвращаемое значение устанавливается на какое-то случайное число, чтобы указать, что произошла ошибка.

...