- uint32_t x;
- x = (uint32_t) fgetc(file) << 24 ;
- x = x + ( (uint32_t) fgetc(file) << 16 ) ;
- x = x + ( (uint32_t) fgetc(file) << 8 ) ;
- x = x + (uint32_t) fgetc(file) ;
- return x;
+ exit_trouble(fclose(file), f, "fclose()");
+}
+
+
+
+extern void try_fwrite(void * ptr, size_t size, size_t nmemb, FILE * stream,
+ char * f)
+{
+ exit_trouble(0 == fwrite(ptr, size, nmemb, stream), f, "fwrite()");
+}
+
+
+
+extern void try_fputc(uint8_t c, FILE * file, char * f)
+{
+ exit_trouble(EOF == fputc(c, file), f, "fputc()");
+}
+
+
+
+extern char * try_fgets(char * line, int linemax, FILE * file, char * f)
+{
+ char * test = fgets(line, linemax, file);
+ exit_trouble(NULL == test && ferror(file), f, "fgets()");
+ return test;
+}
+
+
+
+extern int try_fgetc(FILE * file, char * f)
+{
+ int test = fgetc(file);
+ exit_trouble(EOF == test && ferror(file), f, "fgetc()");
+ return test;