J'essayais dup2 sur linux. Mon programme de test est: J'ouvre un tube, j'essaie de copier stdin à fifo write, dup stdout à fifo read, je souhaite quand je lance ce programme, stdin est écrit dans le fifo, et fifo télécharge automatiquement le contenu sur stdout:linux dup2 ne semble pas fonctionner avec des tuyaux?
J'ai exécuté ce programme, n'a pas vu une impression stdout supplémentaire.#include<stdio.h>
#include<unistd.h>
int main(){
int pipefd[2];
pipe(pipefd);
int& readfd=pipefd[0];
int& writefd=pipefd[1];
dup2(STDIN_FILENO,writefd);
dup2(STDOUT_FILENO,readfd);
char buf[1024];
scanf("%s",buf);
return 0;
}
Ma question:
(1) Est-ce que mon stdin "scanf" est écrit à fifo writefd? (2) Si oui, le contenu peut-il être dirigé automatiquement vers la sortie de ma console? Si ce n'est pas comment le réparer?