execlp() system call error in output

后端 未结 3 385
深忆病人
深忆病人 2021-01-25 22:50

This very simple example of exec() system call. Here, I am trying to call execlp() twice. But, I am not getting excepted output. It shows output only f

相关标签:
3条回答
  • 2021-01-25 23:00

    execlp () replaces the process that called it by the process which was called.

    From this link:

    "The exec() family of functions replaces the current process image with a new process image."

    To retain both the processes, use fork().

    0 讨论(0)
  • 2021-01-25 23:16
    #include <stdio.h>
    #include <unistd.h>
    
    int main() { 
    
            int ret1,ret2;
    
            pid_t chd;
            chd=fork(); 
            if(chd==0)
            ret1 = execlp( "pwd", "pwd", (char *) 0);
            else if(chd>0)
            ret2 = execlp( "date", "date", (char *) 0);
            return 0;
    }
    
    0 讨论(0)
  • 2021-01-25 23:17

    execlp() replaces the current process image with a new process image. It does not return (unless there was an error starting the new process).

    Therefore the second execlp() call is never reached.

    0 讨论(0)
提交回复
热议问题