diff options
Diffstat (limited to 'src/handerror.c')
-rw-r--r-- | src/handerror.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/handerror.c b/src/handerror.c new file mode 100644 index 0000000..35e8f28 --- /dev/null +++ b/src/handerror.c @@ -0,0 +1,30 @@ +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <sys/wait.h> + +void callError(int num) +{ + fprintf(stderr, "lpass: Sorry, there was an error in the program [#%d]\n", num); + exit(3); +} + +void printError(char *text) +{ + fprintf(stderr, "%s", text); + exit(4); +} + +void easyFork(char *name, char *arguments[]) +{ + int pid; + pid = fork(); + if(pid == -1) callError(100); + if(pid == 0) { /* new process */ + execvp(name, arguments); + perror(name); + exit(4); + } + wait(&pid); +} + |