/*
* Helper functions/macros for example files.
*
- * Copyright (C) 2013 Simon Ruderich
+ * Copyright (C) 2013-2014 Simon Ruderich
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
} \
fflush(stdout); \
} else
+
+static ssize_t xwrite(int fd, void const *buf, size_t count) {
+ ssize_t result = write(fd, buf, count);
+ if (result == -1) {
+ perror("write");
+ exit(EXIT_FAILURE);
+ }
+ /* Ignore short writes here. Doesn't matter for test cases. */
+ return result;
+}
+
+static int xdup2(int oldfd, int newfd) {
+ int result = dup2(oldfd, newfd);
+ if (result == -1) {
+ perror("dup2");
+ exit(EXIT_FAILURE);
+ }
+ return result;
+}