lkml.org 
[lkml]   [2003]   [Apr]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
Subject[RFD] Combined fork-exec syscall.

Hello all,

Is there any interest in a single system call that will perform both a
fork() and exec()? Could this save some extra work of doing a
copy_mm(), copy_signals(), etc?

I would think on large, multi-user systems that are spawning processes all
day, this might improve performance if the shells on such a system were
patched.

Perhaps a system call like:

pid_t spawn(const char *p_path,
const char *argv[],
const char *envp[],
const int filp[]);

The filp array would allow file descriptors to be redirected. It could be
terminated by a -1 and reference the file descriptors of the current
process (this could also potentially save some dup() syscalls).

If any of these parameters (exclusing p_path) are NULL, then the
appropriate values are taken from the current process.

I originally was thinking of a name of fexec() for such a syscall, but
since there are already "f" variant syscalls (fchmod, fstat, ...) that an
fexec() would make more sense about executing an already open file, so the
name spawn() came to mind.

I know almost all of my fork()-exec() code does almost the same thing. I
guess vfork() was a potential solution, but this somehow seems cleaner
(and still may be more efficient than having to issue two syscalls)...
the downside is, of course, another syscall.

L8r,
Mark G.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:35    [W:0.167 / U:1.452 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site