mirror of
https://github.com/rwinkhart/sys.git
synced 2026-09-05 00:27:17 -04:00
unix: add Exec call
The syscall execve has no wrapper in this library, which it seems like it should - Ian seemed to concur in CL 72550. Add a docstring and an example, because I always get confused about how to invoke the syscall. Change-Id: I6100bbbf4ace9e3e341bf186a04cc03301da9aea Reviewed-on: https://go-review.googlesource.com/101282 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
@@ -305,3 +305,12 @@ func SetNonblock(fd int, nonblocking bool) (err error) {
|
||||
_, err = fcntl(fd, F_SETFL, flag)
|
||||
return err
|
||||
}
|
||||
|
||||
// Exec calls execve(2), which replaces the calling executable in the process
|
||||
// tree. argv0 should be the full path to an executable ("/bin/ls") and the
|
||||
// executable name should also be the first argument in argv (["ls", "-l"]).
|
||||
// envv are the environment variables that should be passed to the new
|
||||
// process (["USER=go", "PWD=/tmp"]).
|
||||
func Exec(argv0 string, argv []string, envv []string) error {
|
||||
return syscall.Exec(argv0, argv, envv)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user