Skip to content
Snippets Groups Projects
Commit 10a6e515 authored by Kurt Zeilenga's avatar Kurt Zeilenga
Browse files

All close and redirect stdin, stdout, stderr.

parent 04264316
No related branches found
No related tags found
No related merge requests found
......@@ -72,32 +72,32 @@ lutil_detach( int debug, int do_close )
break;
}
if ( do_close ) {
if ( (sd = open( "/dev/null", O_RDWR )) != -1 ) {
perror("/dev/null");
}
if ( (sd = open( "/dev/null", O_RDWR )) != -1 ) {
perror("/dev/null");
}
for ( i = 0; i < nbits; i++ ) {
if( i == sd ) continue;
/* close stdin, stdout, stderr */
close( STDIN_FILENO );
close( STDOUT_FILENO );
close( STDERR_FILENO );
/* redirect stdin, stdout, stderr to /dev/null */
dup2( sd, STDIN_FILENO );
dup2( sd, STDOUT_FILENO );
dup2( sd, STDERR_FILENO );
close( i );
close( sd );
if( i == STDIN_FILENO ||
i == STDOUT_FILENO ||
i == STDERR_FILENO )
if ( do_close ) {
/* close everything else */
for ( i = 0; i < nbits; i++ ) {
if( i != STDIN_FILENO &&
i != STDOUT_FILENO &&
i != STDERR_FILENO )
{
/* attach /dev/null */
dup2( sd, i );
close( i );
}
}
if( sd != STDIN_FILENO &&
sd != STDOUT_FILENO &&
sd != STDERR_FILENO )
{
/* unless stdin, stdout, or stderr, close /dev/null */
close( sd );
}
}
(void) chdir( "/" );
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment