+ if (opt_file) {
+ FILE *fp;
+ size_t written = 0;
+
+ fp = fopen(opt_file, "w");
+ if (!fp) {
+ perror("fopen");
+ return_code= -1;
+ break;
+ }
+
+ written = fwrite(string, 1, string_length, fp);
+ if (written != string_length) {
+ fprintf(stderr, "error writing file (written %d, should be %d)\n", written, string_length);
+ return_code= -1;
+ break;
+ }
+
+ if (fclose(fp)) {
+ fprintf(stderr, "error closing file\n");
+ return_code= -1;
+ break;
+ }
+ }
+ else {
+ printf("%.*s\n", (int)string_length, string);
+ }