This article is within the scope of WikiProject Computing, a collaborative effort to improve the coverage of computers, computing, and information technology on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.ComputingWikipedia:WikiProject ComputingTemplate:WikiProject ComputingComputing articles
This article is within the scope of WikiProject Linux, a collaborative effort to improve the coverage of Linux on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.LinuxWikipedia:WikiProject LinuxTemplate:WikiProject LinuxLinux articles
The article currently talks about the return value of the exec* functions. Shouldn't it say exit status instead? Or can we say: from the perspective of the exiting process an exit status is returned, while from the parent process this looks like a return value?
[With some exec* commands] the child process inherits the parent's environment.
Is it correct to speak of parent and child in the context of exec? With the fork command, we get two distinct processes, one being called parent and one being called child. But with exec, the process "creating the child" will be the child itself - the parent does not exist anymore (put in another way: the parent transforms to a child). So I feel it is a misnomer to talk about parent and child in exec contexts, especially when one considers that there usually (always?) is a parent to the process that executes the exec command. Maybe an expert can clarify the nomenclature?
I’m guessing translation mode refers to the DOS and Windows text-mode CRLF newline translation. In fact it looks like that text is copied straight from the exec functions entry in Microsoft’s MSDN. Probably not even worth mentioning in the article.
The return value of the function call is only relevant if it fails to replace the process. I’ll try and make that clearer.
Yes it is better to talk about the new and old processes with exec, rather than parent and child, I think. Somebody must have already fixed this.
Disputed - new process inheriting parent's settings when envp is null[edit]
The entry states the following: If envp itself is null, the new process inherits the current environment settings.
This is not true on a variety of systems (Linux comes to mind), and this can be trivially demonstrated. Furthermore, every POSIX/*nix source I've searched with regards to the exec family of functions (including Opengroup.org, kernel.org, [http://www.amazon.com/Advanced-Programming-UNIX-Environment-2nd/dp/0201433079/ref=sr_1_1?s=books&ie=UTF8&qid=1357652759&sr=1-1&keywords=advanced+programming+in+the+unix+environment Steven's Advanced Programming in the UNIX Environment], and [http://www.amazon.com/Professional-Linux-Kernel-Architecture-Programmer/dp/0470343435/ref=sr_1_1?s=books&ie=UTF8&qid=1357652832&sr=1-1&keywords=linux+architecture Mauerer's Professional Linux Kernel Architecture]) does not mention that type of behavior.
Since User:Schily just reverted my edit without explanation: please explain your rationale. The FD_CLOEXEC flag can be set by other means than by fcntl, e.g. by the openat call. Do you disagree with that. Best regards –Jérôme (talk) 09:29, 25 April 2017 (UTC)[reply]
O_CLOEXEC is a recent (I remember when we added it ;-) enhancement to allow to set it atomically. It is a non-clean flag as it sets another flag at a different location in the kernel and as it cannot be read back by fcntl(fd, GETFL). Schily (talk) 10:09, 25 April 2017 (UTC)[reply]