diff options
-rw-r--r-- | urlopen.c | 15 |
1 files changed, 10 insertions, 5 deletions
@@ -38,7 +38,8 @@ char *programs[][2] = }; char *forceddomains[][2] = -{ /* if the domain is listed here, the index into programs[x][] +{ + /* if the domain is listed here, the index into programs[x][] * will be the number, don't add the protocol identifier * the www subdomain is considered a different domain */ @@ -195,9 +196,13 @@ main(int argc, char *argv[]) { // child process, we don't want to ignore signals signal(SIGCHLD, SIG_DFL); - // close std{out,err} - fclose(stdout); - fclose(stderr); + /* + * we don't want std{out,err} to be associated with the terminal, + * but we also don't want to close it to avoid the file descriptors + * being re-used potentially leading to problems, so reopen then to /dev/null + */ + freopen("/dev/null", "w", stdout); + freopen("/dev/null", "w", stderr); char *args[20]; char *buff = malloc(BUFFSIZE); if (buff == NULL) @@ -226,7 +231,7 @@ main(int argc, char *argv[]) } else if (pid == -1) { - perror("fork error"); + perror("fork"); } } } |