I don't know what I am doing wrong... but here is the snippet of code that is being executed:
if (fork() == 0) { // child int fd = open(fileName, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR); dup2(fd, 1); // make stdout go to file execvp("ls","ls"); close(fd); exit(0); } if(wait(&status) == -1) { printf("ERROR REDIRECT\n"); } fileName gets created but there is nothing inside.What am I doing wrong?
execvpproperly.dup2? It should print to standard output. This test could help focus on the problem.exec...functions expect executable files, not shell commands. You could usesystem()though...