*/
#include <stdio.h>
+#include <errno.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/stat.h>
#endif
-#define die(...) do { fprintf(stderr, __VA_ARGS__); exit(1); } while (0);
+#define err(...) do { int save_errno = errno; \
+ fprintf(stderr, __VA_ARGS__); \
+ errno = save_errno; \
+ } while (0);
+#define pdie(func, ...) do { perror(func); exit(1); } while (0);
int main(int argc, char *argv[])
{
/* Open the input file. */
ifile = fopen(ifname, "rb");
if (ifile == NULL) {
- die("Cannot open %s\n", ifname);
+ err("Cannot open %s\n", ifname);
+ pdie("fopen");
}
/* Get file length. */
ofile = fopen(ofname, "wb");
if (ofile == NULL) {
fclose(ifile);
- die("Cannot open %s\n", ofname);
+ err("Cannot open %s\n", ofname);
+ pdie("fopen");
}
/* Pad 1 sector of zeroes. */