Thread (3 messages) flat view 3 messages, 3 authors, 2016-06-15

Re: [PATCH v3] git-archive: Add new option "--output" to write archive to a file instead of stdout.

From: René Scharfe <hidden>
Date: 2016-06-15 22:46:13

Junio C Hamano schrieb:
[off-list ref] writes:
quoted
+static void create_output_file(const char *output_file)
+{
+	int output_fd = open(output_file, O_CREAT | O_WRONLY | O_TRUNC, 0666);
+	if (output_fd < 0)
+		die("could not create archive file: %s ", output_file);
+	if (output_fd != 1)
+		if (dup2(output_fd, 1) < 0) {
+			/*
+			 * dup2 closes output_fd on success, if something 
+			 * goes wrong we close output_fd here to avoid
+			 * problems.
+			 */
+			close(output_fd);
+			die("could not redirect output");
The comment and close() are probably unnecessary, as you will die()
immediately.
dup2() closes the second file, not the first one (but not if it's the
same as the first one), so the comment is incorrect.  And I agree it's
OK to just die() without cleaning up, as this is a fatal error anyway
and an unlikely one on top of that.  How about something like this?

	if (dup2(output_fd, 1) < 0)
		die("could not redirect output");
	close(output_fd);

René
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help