Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <unistd.h>
- #include <sys/wait.h>
- define MAXLINE 1024 /* max line size */
- int Dup2(int oldfd, int newfd);
- int Dup2(int oldfd, int newfd) {
- int ret_val;
- ret_val = dup2(oldfd, newfd);
- if (ret_val == -1) {
- fprintf(stderr, "fd redirection failed\n");
- exit(-1);
- }
- return ret_val;
- }
- int main() {
- char str_buf[MAXLINE];
- int fds[2], wait_status, tty;
- pid_t pid;
- pipe(fds);
- pid = fork();
- printf("pid: %d\n", pid);
- if (pid == 0) {
- printf("hello???\n");
- Dup2(fds[0], STDIN_FILENO);
- Dup2(fds[1], STDOUT_FILENO);
- printf("Input something: \n");
- fgets(str_buf, MAXLINE, stdin);
- close(fds[0]);
- printf("CHILD: writing to pipe...\n");
- write(fds[1], str_buf, MAXLINE);
- exit(0);
- } else {
- waitpid(pid, &wait_status, 0);
- printf("wait_status: %d\n", WIFEXITED(wait_status));
- close(fds[1]);
- printf("PARENT:\n");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment