int main() {
- int ret;
- FILE *descs, *strs;
+ int ret = 0;
+ FILE *descs = NULL, *strs = NULL;
/* open file for descriptors */
descs = fopen("descs","w");
strs = fopen("strs", "w");
if (!strs) {
ret = -errno;
+
+ if (fclose(descs) != 0)
+ perror("could not close descriptor");
+
perror("could not open file with strings");
return ret;
}
/* write descriptors to file */
ret = fwrite(&descriptors, sizeof(descriptors), 1, descs);
if (ret < 0) {
+ ret = ferror(descs);
+
+ if (fclose(descs) != 0)
+ perror("could not close descriptor");
+
+ if (fclose(strs) != 0)
+ perror("could not close descriptor");
+
perror("could not write descriptors");
- return ferror(descs);
+ return ret;
}
/* write strings to file */
ret = fwrite(&strings, sizeof(strings), 1, strs);
if(ret < 0) {
+ ret = ferror(strs);
+
+ if (fclose(descs) != 0)
+ perror("could not close descriptor");
+
+ if (fclose(strs) != 0)
+ perror("could not close descriptor");
+
perror("could not write strings");
- return ferror(strs);
+ return ret;
}
- fclose(descs);
- fclose(strs);
+ if (fclose(descs) != 0)
+ perror("could not close descriptor");
+
+ if (fclose(strs) != 0)
+ perror("could not close descriptor");
return 0;
}