Changeset: ff51a0ab1da6 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ff51a0ab1da6
Modified Files:
tools/merovingian/daemon/forkmserver.c
Branch: Jul2017
Log Message:
Catch write results.
diffs (36 lines):
diff --git a/tools/merovingian/daemon/forkmserver.c
b/tools/merovingian/daemon/forkmserver.c
--- a/tools/merovingian/daemon/forkmserver.c
+++ b/tools/merovingian/daemon/forkmserver.c
@@ -574,6 +574,7 @@ forkMserver(char *database, sabdb** stat
if (pid == 0) {
/* redirect stdout and stderr to a new pair of fds for
* logging help */
+ ssize_t write_error; /* to avoid compiler warning */
close(pfdo[0]);
dup2(pfdo[1], 1);
close(pfdo[1]);
@@ -582,17 +583,19 @@ forkMserver(char *database, sabdb** stat
dup2(pfde[1], 2);
close(pfde[1]);
- write(1, "arguments:", 10);
+ write_error = write(1, "arguments:", 10);
for (c = 0; argv[c] != NULL; c++) {
/* very stupid heuristic to make copy/paste easier from
* merovingian's log */
int q = strchr(argv[c], ' ') != NULL;
- write(1, " \"", 1 + q);
- write(1, argv[c], strlen(argv[c]));
+ write_error |= write(1, " \"", 1 + q);
+ write_error |= write(1, argv[c], strlen(argv[c]));
if (q)
- write(1, "\"", 1);
+ write_error |= write(1, "\"", 1);
}
- write(1, "\n", 1);
+ write_error |= write(1, "\n", 1);
+ if (write_error < 0)
+ perror("write");
execv(_mero_mserver, argv);
/* if the exec returns, it is because of a failure */
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list