execve does not do the same as system at all, as per manual
> execve() executes the program referred to by pathname. This
causes the program that is currently being run by the calling
process to be replaced with a new program
The argument in favor of system is that it is a standard C library function. It is clearly in the article:
> Better, while we are being pragmatic why not use good old system C stdlib function
I meant fork+execve, obviously if you drop execve where system is, it doesn't work the same.
You make a good point about it not being standard. Is there no standard way of creating a process from an argument vector, without dealing with the shell?
> execve() executes the program referred to by pathname. This causes the program that is currently being run by the calling process to be replaced with a new program
The argument in favor of system is that it is a standard C library function. It is clearly in the article: > Better, while we are being pragmatic why not use good old system C stdlib function