36 if (logging_disabled) {
42 if (dev_null_fd == -1) {
48 original_stdout_fd = dup(STDOUT_FILENO);
49 if (original_stdout_fd == -1) {
54 dup2(dev_null_fd, STDOUT_FILENO);
56 (void)freopen(
"/dev/null",
"w", stdout);
58 (void)setvbuf(stdout, NULL, _IONBF, 0);
62 original_stderr_fd = dup(STDERR_FILENO);
63 if (original_stderr_fd == -1) {
65 if (disable_stdout && original_stdout_fd != -1) {
66 dup2(original_stdout_fd, STDOUT_FILENO);
67 close(original_stdout_fd);
68 original_stdout_fd = -1;
74 dup2(dev_null_fd, STDERR_FILENO);
76 (void)freopen(
"/dev/null",
"w", stderr);
78 (void)setvbuf(stderr, NULL, _IONBF, 0);
81 logging_disabled =
true;
92 if (!logging_disabled) {
97 if (original_stdout_fd != -1) {
98 dup2(original_stdout_fd, STDOUT_FILENO);
100 (void)freopen(
"/dev/stdout",
"w", stdout);
102 (void)setvbuf(stdout, NULL, _IOLBF, 0);
103 close(original_stdout_fd);
104 original_stdout_fd = -1;
108 if (original_stderr_fd != -1) {
109 dup2(original_stderr_fd, STDERR_FILENO);
111 (void)freopen(
"/dev/stderr",
"w", stderr);
113 (void)setvbuf(stderr, NULL, _IONBF, 0);
114 close(original_stderr_fd);
115 original_stderr_fd = -1;
119 if (dev_null_fd != -1) {
124 logging_disabled =
false;