aboutsummaryrefslogtreecommitdiffstats
path: root/src/handerror.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/handerror.c')
-rw-r--r--src/handerror.c30
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);
+}
+