summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuca Bruno <lucab@debian.org>2017-07-21 15:13:44 +0000
committerLuca Bruno <lucab@debian.org>2017-07-22 08:12:10 +0000
commit858d47cd9553cbcffa07d9717ab35e8d7bd3bfac (patch)
tree4aed8dfae36bfff2f0eb9d354af049c85db7a351
parent516df7f77331a253b41cf743178392aa9ad66f50 (diff)
downloadrust-libc-858d47cd9553cbcffa07d9717ab35e8d7bd3bfac.tar.gz
unix: add fexecve()
Add missing fexecve() - execute program specified via file descriptor. Reference: http://pubs.opengroup.org/onlinepubs/9699919799/functions/fexecve.html
-rw-r--r--libc-test/build.rs3
-rw-r--r--src/unix/mod.rs3
2 files changed, 5 insertions, 1 deletions
diff --git a/libc-test/build.rs b/libc-test/build.rs
index 23c55efeff..e7811bb4ca 100644
--- a/libc-test/build.rs
+++ b/libc-test/build.rs
@@ -457,7 +457,8 @@ fn main() {
"execv" | // crazy stuff with const/mut
"execve" |
"execvp" |
- "execvpe" => true,
+ "execvpe" |
+ "fexecve" => true,
"getrlimit" | "getrlimit64" | // non-int in 1st arg
"setrlimit" | "setrlimit64" | // non-int in 1st arg
diff --git a/src/unix/mod.rs b/src/unix/mod.rs
index 3cba52512e..0dd15439e0 100644
--- a/src/unix/mod.rs
+++ b/src/unix/mod.rs
@@ -449,6 +449,9 @@ extern {
-> ::c_int;
pub fn execvp(c: *const c_char,
argv: *const *const c_char) -> ::c_int;
+ pub fn fexecve(fd: ::c_int, argv: *const *const c_char,
+ envp: *const *const c_char)
+ -> ::c_int;
pub fn fork() -> pid_t;
pub fn fpathconf(filedes: ::c_int, name: ::c_int) -> c_long;
pub fn getcwd(buf: *mut c_char, size: ::size_t) -> *mut c_char;