+ }
+
+ #if !USE_POPEN
+ // Create stdin/stdout
+ if( pipe(stdin_pair) || pipe(stdout_pair) )
+ {
+ perror("pipe");
+ return -1;
+ }
+
+ childPid = fork();
+
+ if( childPid < 0 )
+ {
+ perror("fork");
+ return -1;
+ }
+
+ // Child process
+ if( childPid == 0 )
+ {
+ // Close write end of stdin, and set it to #0
+ close(stdin_pair[1]); dup2(stdin_pair[0], 0);
+ // Close read end of stdout, and set it to #1
+ close(stdout_pair[0]); dup2(stdout_pair[1], 1);
+
+ execl("/bin/sh", "sh", "-c", "llogin door -w-", NULL);
+ perror("execl");
+ exit(-1);
+ }