+ }
+
+ if (opt_file)
+ {
+ FILE *fp;
+ size_t written;
+
+ 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 %zu, should be %zu)\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);
+ }