#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include <sys/wait.h>


int main(int argc, char* argv[]) {
	char* prog = argv[1];

	for (int i = 2; i < argc; i++) {
		pid_t pid = fork();
		if (pid == -1) {       // Error -> no child created
			perror("fork");
			exit(EXIT_FAILURE);
		}
		else if (pid == 0) {   // Child Process
			// execvp(prog, (char* []) { prog, argv[i], NULL });
			// char* args[3] = { prog, argv[i], NULL };
			char* args[3];
			args[0] = prog;
			args[1] = argv[i];
			args[2] = NULL;
			execvp(prog, args);
			perror("execvp");
			exit(EXIT_FAILURE);
		}

		int wstatus;
		if (waitpid(pid, &wstatus, 0) < 0) {
			perror("waitpid");
			exit(EXIT_FAILURE);
		}
	}

	exit(EXIT_SUCCESS);
}

