Quick actions

cmd+k|ctrl+k

Navigation

Languages

Pipe as stdin/stdout

Snippet info

Language

C

Visibility

public

Author

740243525

Created

2020-05-22T08:59:47Z

Updated

2020-05-22T08:59:47Z

#include <unistd.h>
#include <stdio.h>
void thread_1(int fr){
    char buffer[1024];
    sprintf(buffer, "/proc/self/fd/%d", fr);
    freopen(buffer, "r", stdin);
    for(int i=0; i<10; i++){
        int temp;
        scanf("%d", &temp);
        printf("%d Fetched!\n", temp);
    }
}

void thread_2(int fw){
    char buffer[1024];
    sprintf(buffer, "/proc/self/fd/%d", fw);
    freopen(buffer, "w+", stdout);
    for(int i=0; i<10; i++){
        printf("%d\n", i+10);
    }
}

int main(){
    int p[2];
    pipe(p);
    pid_t ret=fork();
    if(ret==0){
        ret=fork();
        if(ret==0){

        }else{
            thread_2(p[1]);
        }
    }else{
        thread_1(p[0]);
    }

}
INFO