3 ms·
sudo relying on the PATH provided by /etc/environment is safe... What isn't is system() relying on the current PATH, provided by the (unprivileged) caller. The
by remram 5y ago
sudo relying on the PATH provided by /etc/environment is safe... What isn't is system() relying on the current PATH, provided by the (unprivileged) caller.
The author is so very confused. Not a single argument actually in favor of system(), as opposed to execve() which is the alternative mentioned in manuals next to "don't use system".
- ptsneves 5y agoexecve 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
- remram 5y agoI 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?