Added a fatalPerror function to simplify error handling.

This commit is contained in:
Matt Kraai 2000-10-25 15:10:08 +00:00
parent b60208dd8f
commit 324a778f31
5 changed files with 23 additions and 8 deletions

View File

@ -345,6 +345,7 @@ extern const char *applet_name;
extern void usage(const char *usage) __attribute__ ((noreturn));
extern void errorMsg(const char *s, ...) __attribute__ ((format (printf, 1, 2)));
extern void fatalError(const char *s, ...) __attribute__ ((noreturn, format (printf, 1, 2)));
extern void fatalPerror(const char *s, ...) __attribute__ ((noreturn, format (printf, 1, 2)));
const char *modeString(int mode);
const char *timeString(time_t timeVal);

View File

@ -116,8 +116,7 @@ extern int dd_main(int argc, char **argv)
* here anyways... */
/* free(buf); */
perror(inFile);
exit(FALSE);
fatalPerror("%s", inFile);
}
if (outFile == NULL)
@ -132,8 +131,7 @@ extern int dd_main(int argc, char **argv)
/* close(inFd);
free(buf); */
perror(outFile);
exit(FALSE);
fatalPerror("%s", outFile);
}
lseek(inFd, (off_t) (skipBlocks * blockSize), SEEK_SET);

6
dd.c
View File

@ -116,8 +116,7 @@ extern int dd_main(int argc, char **argv)
* here anyways... */
/* free(buf); */
perror(inFile);
exit(FALSE);
fatalPerror("%s", inFile);
}
if (outFile == NULL)
@ -132,8 +131,7 @@ extern int dd_main(int argc, char **argv)
/* close(inFd);
free(buf); */
perror(outFile);
exit(FALSE);
fatalPerror("%s", outFile);
}
lseek(inFd, (off_t) (skipBlocks * blockSize), SEEK_SET);

View File

@ -345,6 +345,7 @@ extern const char *applet_name;
extern void usage(const char *usage) __attribute__ ((noreturn));
extern void errorMsg(const char *s, ...) __attribute__ ((format (printf, 1, 2)));
extern void fatalError(const char *s, ...) __attribute__ ((noreturn, format (printf, 1, 2)));
extern void fatalPerror(const char *s, ...) __attribute__ ((noreturn, format (printf, 1, 2)));
const char *modeString(int mode);
const char *timeString(time_t timeVal);

View File

@ -109,6 +109,23 @@ extern void fatalError(const char *s, ...)
exit(EXIT_FAILURE);
}
extern void fatalPerror(const char *s, ...)
{
va_list p;
va_start(p, s);
fflush(stdout);
fprintf(stderr, "%s: ", applet_name);
if (s && *s) {
vfprintf(stderr, s, p);
fputs(": ", stderr);
}
fprintf(stderr, "%s\n", strerror(errno));
va_end(p);
fflush(stderr);
exit(EXIT_FAILURE);
}
#if defined BB_INIT
/* Returns kernel version encoded as major*65536 + minor*256 + patch,
* so, for example, to check if the kernel is greater than 2.2.11: