fexecve.c 272 B

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