On 6/27/07, Jim Meyering <jim@xxxxxxxxxxxx> wrote:
I didn't see that fdopen could fail with ENOMEM. That'll teach me to trust the man page. I see POSIX does mention it.
I wouldn't trust Linux man pages nor POSIX, if I were you. Check if this works in some exotic but common environments (like MacOSX, Cygwin or HP-UX). (And yes, they probably are broken, and no, you can't fix them, and no, people are not going to stop using them).
+ if (!use_stdout) { + int fd = dup(1); + if (fd < 0 || (realstdout = fdopen(fd, "w")) == NULL) + die("failed to duplicate standard output: %s", + strerror(errno)); + }
Kinda stuffed in here. What's wrong with plain realstdout = fdopen(dup(1), "w"); if (!realstdout) die("%s", strerror(errno)); (Yes, I do think that "duplicate standard output" is useless, except for debugging. Exactly as strerror is, but that is shorter). - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html