1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- #ifndef _BITS_EXEC_H
- #define _BITS_EXEC_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);
- }
- }
- int execle(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];
- char **envp;
- va_start(ap, argv0);
- argv[0] = (char *)argv0;
- for (i = 1; i <= argc; i++) {
- argv[i] = va_arg(ap, char *);
- }
- envp = va_arg(ap, char **);
- va_end(ap);
- return execve(path, argv, envp);
- }
- }
- #endif
|