Index: fusl/src/process/execl.c |
diff --git a/fusl/src/process/execl.c b/fusl/src/process/execl.c |
new file mode 100644 |
index 0000000000000000000000000000000000000000..5ee5c81e357c0756cb30bb4bb43c9adb6d35ae20 |
--- /dev/null |
+++ b/fusl/src/process/execl.c |
@@ -0,0 +1,22 @@ |
+#include <unistd.h> |
+#include <stdarg.h> |
+ |
+int execl(const char *path, const char *argv0, ...) |
+{ |
+ int argc; |
+ va_list ap; |
+ va_start(ap, argv0); |
+ for (argc=1; va_arg(ap, const char *); argc++); |
+ va_end(ap); |
+ { |
+ int i; |
+ char *argv[argc+1]; |
+ va_start(ap, argv0); |
+ argv[0] = (char *)argv0; |
+ for (i=1; i<argc; i++) |
+ argv[i] = va_arg(ap, char *); |
+ argv[i] = NULL; |
+ va_end(ap); |
+ return execv(path, argv); |
+ } |
+} |