#include #include #include #include #include #include int main(int argc, char** argv) { strlist env = {0}; const char* cmdname = *argv++; --argc; while (argc > 0 && strchr(*argv, '=')) { if (!strlist_push(&env, *argv)) { perror(""); exit(1); } --argc; ++argv; } if (argc == 0) { fprintf(stderr, "Usage: %s param=value ... path arg...\n", cmdname); exit(1); } if (!strlist_push0(&env)) { perror(""); exit(1); } execve(argv[0], argv, env.list); perror(argv[0]); exit(1); }