perror("shmat");
return 1;
}
+#ifdef FIO_HAVE_SHM_ATTACH_REMOVED
+ shmctl(shm_id, IPC_RMID, NULL);
+#endif
#endif
memset(threads, 0, max_jobs * sizeof(struct thread_data));
case 'b':
write_bw_log = 1;
break;
- case 'o':
+ case 'o': {
+ FILE *tmp;
+
if (f_out && f_out != stdout)
fclose(f_out);
- f_out = fopen(optarg, "w+");
- if (!f_out) {
- perror("fopen output");
- exit(1);
+ tmp = fopen(optarg, "w+");
+ if (!tmp) {
+ log_err("fio: output file open error: %s\n", strerror(errno));
+ exit_val = 1;
+ do_exit++;
+ break;
}
- f_err = f_out;
+ f_err = f_out = tmp;
break;
+ }
case 'm':
output_format = FIO_OUTPUT_TERSE;
break;