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