aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTristan Riehs <tristan.riehs@inria.fr>2026-07-05 18:30:38 +0200
committerTristan Riehs <tristan.riehs@inria.fr>2026-07-05 18:30:38 +0200
commit430bca8a0f166df268e2fa8fb207286640bd0602 (patch)
tree8ebad4affc699ff53d8061f332e13299c315ddba
parentcc96dd40bc1710cd20cc64f2f36622a1f01f174a (diff)
Add a sys_check routine
-rw-r--r--src/system.c10
-rw-r--r--src/system.h4
2 files changed, 14 insertions, 0 deletions
diff --git a/src/system.c b/src/system.c
index df53e99..2f95661 100644
--- a/src/system.c
+++ b/src/system.c
@@ -10,6 +10,16 @@
#include <unistd.h>
#include "system.h"
+#include "utils.h"
+
+void __sys_check(int cond, const char *prefix, const char *file, int line)
+{
+ if (!cond) {
+ fprintf(stderr, "%s:%d: %s: ", file, line, prefix);
+ perror("");
+ exit(EXIT_FAILURE);
+ }
+}
int file_exists(const char *path)
{
diff --git a/src/system.h b/src/system.h
index 950a82a..1045153 100644
--- a/src/system.h
+++ b/src/system.h
@@ -4,6 +4,10 @@
/* Routines for interacting with the system, mainly executing processes and
* dealing with the file system. */
+void __sys_check(int cond, const char *prefix, const char *file, int line);
+
+#define sys_check(COND, PREFIX) __sys_check(COND, PREFIX, __FILE__, __LINE__)
+
/* Used when encrypting or decrypting a file, see the copy_file_with_encryption
* function. */
enum encrypt {