Added a fatalPerror function to simplify error handling.
This commit is contained in:
		@@ -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);
 | 
			
		||||
 
 | 
			
		||||
@@ -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
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								dd.c
									
									
									
									
									
								
							@@ -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);
 | 
			
		||||
 
 | 
			
		||||
@@ -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);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										17
									
								
								utility.c
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								utility.c
									
									
									
									
									
								
							@@ -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:
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user