On Tue, Jan 31, 2017 at 12:00 PM, Mark Galeck <[email protected]> wrote:
> This is strange. Why save, dup and dup again to restore, descriptors in the
> parent, when it would be much simpler to just dup in the child, and not have
> to save and restore. This is simpler and I checked it works the same:
> I am sure there must be a good reason and I am not understanding something
> deeper. What is it?
I am not a dash developer, but one reason to make system calls in the
parent is that it is much simpler to handle errors in the parent.
In your example:
> if (!fork()) {
> fd = open64("foobar.txt", O_WRONLY|O_CREAT);
> dup2(fd, 1);
> execl("/bin/date", "date", (char *)NULL);
> }
What happens if open64 fails? How should the child inform the parent
of this specific error?
-Parke
--
To unsubscribe from this list: send the line "unsubscribe dash" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html