#include <spawn.h>
#include <unistd.h>

int __execvpe(const char*, char* const*, char* const*);

int __posix_spawnx(pid_t* restrict,
                   const char* restrict,
                   int (*)(const char*, char* const*, char* const*),
                   const posix_spawn_file_actions_t*,
                   const posix_spawnattr_t* restrict,
                   char* const* restrict,
                   char* const* restrict);

int posix_spawnp(pid_t* restrict res,
                 const char* restrict file,
                 const posix_spawn_file_actions_t* fa,
                 const posix_spawnattr_t* restrict attr,
                 char* const argv[restrict],
                 char* const envp[restrict]) {
  return __posix_spawnx(res, file, __execvpe, fa, attr, argv, envp);
}
