return ret;
}
-FILE *
+void
xfreopen (const char *path, const char *mode, FILE *stream)
{
FILE *ret;
path, strerror (errno));
exit (1);
}
-
- return ret;
}
char *
{
char *ret;
+ if (s == NULL)
+ return NULL;
+
ret = strdup (s);
if (ret == NULL) {
return ret;
}
+
+ssize_t
+xread (int fd, void *buf, size_t count)
+{
+ int ret;
+
+ ret = read (fd, buf, count);
+ if (ret == -1) {
+ fprintf (stderr, "Error: read failed: %s. Aborting.\n",
+ strerror (errno));
+ exit (1);
+ }
+
+ return ret;
+}
+
+ssize_t
+xwrite (int fd, const void *buf, size_t count)
+{
+ int ret;
+
+ ret = write (fd, buf, count);
+ if (ret == -1) {
+ fprintf (stderr, "Error: write failed: %s. Aborting.\n",
+ strerror (errno));
+ exit (1);
+ }
+
+ return ret;
+}