aboutsummaryrefslogtreecommitdiff
path: root/src/eval/eval_err.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/eval/eval_err.cc')
-rw-r--r--src/eval/eval_err.cc41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/eval/eval_err.cc b/src/eval/eval_err.cc
new file mode 100644
index 0000000..3d90262
--- /dev/null
+++ b/src/eval/eval_err.cc
@@ -0,0 +1,41 @@
+#include "eval.h"
+
+#include <print>
+#include <unistd.h>
+
+using namespace std;
+
+namespace ov4
+{
+
+void eval_err(int err)
+{
+ switch (err)
+ {
+ case ENOTDIR:
+ println(": A component of the path prefix is not a directory.");
+ _exit(errno);
+ break;
+
+ case ENAMETOOLONG:
+ println(": A component of a pathname exceeded 255 characters, or an entire path name exceeded 1023 characters.");
+ _exit(errno);
+ break;
+
+ case ENOENT:
+ println(": The new process file does not exist.");
+ _exit(errno);
+ break;
+
+ case EACCES:
+ println(": The new process file mode denies execute permission.");
+ _exit(errno);
+ break;
+
+ default:
+ println(": Error, code: {}", errno);
+ _exit(errno);
+ }
+}
+
+} \ No newline at end of file