Thread (1 message) 1 message, 1 author, 2011-09-17

Re: man execve / Suggestion

From: Michael Kerrisk <hidden>
Date: 2011-09-17 05:13:26

Hello Sebastian,

On Mon, Jul 4, 2011 at 5:11 PM, Sebastian Geiger [off-list ref] wrote:
I would like to suggest an improvement on the execve man-page (Page
Version 3.27). In the description of the execve system call I would
suggest to add a reminder that the argv arrays need to have put the
programm name as its first argument.

For the unexperienced it is easy to write something as such:

char* program = "/usr/bin/ls";
char* file = "-lah";
char* argv[] = {file, NULL}; //should be {program, file, NULL}
char* envp[] = {NULL};
execve(eog, argv, envp);

For the experienced programmers this is probably obvious, yet for those
more unexperienced it would be a useful hint if the man-page said
something like:

"Remember the first argument in the argv array should be the path to the
programm that is about to be executed and your custom arguments should
start from the second position."
Thanks for the report. The exec(3) page already contains text along
the lines you suggest, and of course execve(2) should also. For
man-pages-3.33, I applied the patch below.

Cheers,

Michael
--- a/man2/execve.2
+++ b/man2/execve.2
@@ -58,6 +58,8 @@ starting with a line of the form:
 For details of the latter case, see "Interpreter scripts" below.

 \fIargv\fP is an array of argument strings passed to the new program.
+By convention, the first of these strings should contain the filename
+associated with the file being executed.
 \fIenvp\fP is an array of strings, conventionally of the form
 \fBkey=value\fP, which are passed as environment to the new program.
 Both \fIargv\fP and \fIenvp\fP must be terminated by a null pointer.



-- 
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Author of "The Linux Programming Interface"; http://man7.org/tlpi/
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help