backend: Logging exec_{pre|post}run

When using the exec_{pre|post}run option in fio jobs, it's very
important being able to read the output of thoses commands later.

As the output could be very verbose, let's log all the output of the
command in separate file.

As an example, when running two jobs called "write" and "read" the
exec_prerun option is used. During fio's execution, the following
message will be shown :
	write : Saving output of prerun in write.prerun.txt
	read : Saving output of prerun in read.prerun.txt

The output filename is so composed of the job name appended with the pre
or post run name and a final .txt extension.

That's pretty simple and shall do the job.
diff --git a/backend.c b/backend.c
index c2fa34c..b9c1c12 100644
--- a/backend.c
+++ b/backend.c
@@ -1086,14 +1086,15 @@
 	return 0;
 }
 
-static int exec_string(const char *string)
+static int exec_string(struct thread_options *o, const char *string, const char *mode)
 {
-	int ret, newlen = strlen(string) + 1 + 2;
+	int ret, newlen = strlen(string) + strlen(o->name) + strlen(mode) + 9 + 1;
 	char *str;
 
 	str = malloc(newlen);
-	sprintf(str, "%s", string);
+	sprintf(str, "%s &> %s.%s.txt", string, o->name, mode);
 
+	log_info("%s : Saving output of %s in %s.%s.txt\n",o->name, mode, o->name, mode);
 	ret = system(str);
 	if (ret == -1)
 		log_err("fio: exec of cmd <%s> failed\n", str);
@@ -1274,7 +1275,7 @@
 	if (init_random_map(td))
 		goto err;
 
-	if (o->exec_prerun && exec_string(o->exec_prerun))
+	if (o->exec_prerun && exec_string(o, o->exec_prerun, (const char *)"prerun"))
 		goto err;
 
 	if (o->pre_read) {
@@ -1397,7 +1398,7 @@
 
 	fio_mutex_up(writeout_mutex);
 	if (o->exec_postrun)
-		exec_string(o->exec_postrun);
+		exec_string(o, o->exec_postrun, (const char *)"postrun");
 
 	if (exitall_on_terminate)
 		fio_terminate_threads(td->groupid);