'Wanted to know why doesn't the print statement in child process is not printing
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/wait.h>
#include <fcntl.h>
int main(int argc, char *argv[])
{
    int rc = fork();
    if (rc < 0)
    {
        printf("fork failed\n");
        exit(1);
    }
    else if (rc == 0)
    {
        close(STDOUT_FILENO);
        int ret = open("./out.log", O_CREAT | O_WRONLY | O_TRUNC, S_IRWXU);
        if (ret == -1)
        {
            printf("Failed to open file for stdout redirection\n");
            exit(1);
        }
        char *myargs[2];
        myargs[0] = strdup("ls"); // execute ls command
        myargs[1] = NULL;
        int status = execvp(myargs[0], myargs);
        if (status == -1)
        {
            printf("execvp: failed");
            exit(1);
        }
        printf("Child: Finished\n");
    }
    else
    {
        wait(NULL);
        printf("Parent: Finished\n");
    }
    return 0;
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source | 
|---|
