fexecve.c 291 B

1234567891011121314
  1. #include <unistd.h>
  2. #include <stdio.h>
  3. #include <errno.h>
  4. void __procfdname(char *, unsigned);
  5. int fexecve(int fd, char *const argv[], char *const envp[])
  6. {
  7. char buf[15 + 3*sizeof(int)];
  8. __procfdname(buf, fd);
  9. execve(buf, argv, envp);
  10. if (errno == ENOENT) errno = EBADF;
  11. return -1;
  12. }