summaryrefslogtreecommitdiff
path: root/coreutils/nohup.c
diff options
context:
space:
mode:
author"Vladimir N. Oleynik"2005-09-22 13:26:23 +0000
committer"Vladimir N. Oleynik"2005-09-22 13:26:23 +0000
commit1f0ac23c20a2a65c45bb75f5e0431c9b68b800ea (patch)
treeaa93249abd758ea2e36f51dfc47437b820864d59 /coreutils/nohup.c
parent24cca8d9589614d4a10916d482859f06865f5a43 (diff)
downloadbusybox-1f0ac23c20a2a65c45bb75f5e0431c9b68b800ea.zip
busybox-1f0ac23c20a2a65c45bb75f5e0431c9b68b800ea.tar.gz
very small size reduce for nohup applet
Diffstat (limited to 'coreutils/nohup.c')
-rw-r--r--coreutils/nohup.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/coreutils/nohup.c b/coreutils/nohup.c
index 407cf00..c457bfd 100644
--- a/coreutils/nohup.c
+++ b/coreutils/nohup.c
@@ -40,12 +40,12 @@ static inline int set_cloexec_flag (int desc)
#define set_cloexec_flag(desc) (0)
#endif
-static int fd_reopen (int desired_fd, char const *file, int flags, mode_t mode)
+static int fd_reopen (int desired_fd, char const *file, int flags)
{
int fd;
close (desired_fd);
- fd = open (file, flags, mode);
+ fd = open (file, flags | O_WRONLY, S_IRUSR | S_IWUSR);
if (fd == desired_fd || fd < 0)
return fd;
else {
@@ -115,27 +115,25 @@ int nohup_main (int argc, char **argv)
Note that it is deliberately opened for *writing*,
to ensure any read evokes an error. */
if (isatty (STDIN_FILENO))
- fd_reopen (STDIN_FILENO, "/dev/null", O_WRONLY, 0);
+ fd_reopen (STDIN_FILENO, "/dev/null", 0);
/* If standard output is a tty, redirect it (appending) to a file.
First try nohup.out, then $HOME/nohup.out. */
if (isatty (STDOUT_FILENO)) {
char *in_home = NULL;
char const *file = "nohup.out";
- int fd = fd_reopen (STDOUT_FILENO, file,
- O_CREAT | O_WRONLY | O_APPEND, S_IRUSR | S_IWUSR);
+ int fd = fd_reopen (STDOUT_FILENO, file, O_CREAT | O_APPEND);
if (fd < 0) {
if ((in_home = getenv ("HOME")) != NULL) {
in_home = concat_path_file(in_home, file);
- fd = fd_reopen (STDOUT_FILENO, in_home,
- O_CREAT | O_WRONLY | O_APPEND, S_IRUSR | S_IWUSR);
+ fd = fd_reopen (STDOUT_FILENO, in_home, O_CREAT | O_APPEND);
}
if (fd < 0) {
bb_perror_msg("failed to open '%s'", file);
if (in_home)
bb_perror_msg("failed to open '%s'",in_home);
- exit (NOHUP_FAILURE);
+ return (NOHUP_FAILURE);
}
file = in_home;
}
@@ -185,4 +183,3 @@ int nohup_main (int argc, char **argv)
return (errno == ENOENT ? EXIT_ENOENT : EXIT_CANNOT_INVOKE);
}
}
-