+#else
+ pid_t pid = fork();
+ if(pid == -1) {
+ fprintf(stderr, "Could not fork: %s\n", strerror(errno));
+ return 1;
+ }
+
+ if(!pid)
+ exit(execvp(c, nargv));
+
+ int status = -1;
+ if(waitpid(pid, &status, 0) != pid || !WIFEXITED(status) || WEXITSTATUS(status)) {
+ fprintf(stderr, "Error starting %s\n", c);
+ return 1;
+ }
+
+ return 0;
+#endif