Rediriger stdout vers un fichier

Je suis en train de faire l'équivalent de la commande bash ls>foo.txt dans C.

Le code soufflet redirige la sortie d'une variable.

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/wait.h>

int main(){
  int pfds[2];
  char buf[30];

  pipe(pfds);

  if (!fork()) {
    close(pfds[0]);
     //close(1);//Close stdout
    //dup(pfds[1]);
    //execlp("ls", "ls", NULL);
    write(pfds[1], "test", 5); //Writing in the pipe
    exit(0);
  } else {
    close(pfds[1]);  
    read(pfds[0], buf, 5); //Read from pipe
    wait(NULL);
  }
  return 0;
}

Les lignes de commentaires se réfèrent à celles de ces opérations qui, je crois, qui sont nécessaires pour la redirection.
Que dois-je changer de rediriger la sortie de la commande ls pour foo.txt?

Pourquoi êtes-vous de la création d'une pipe, quand il n'y a pas de tuyau indiqué dans la syntaxe shell vous imiter?
"Est équivalent à [cette bash code] dans C" n'est pas un bash question. Seulement le tag bash si vous voulez des gens qui sont des experts dans bash (et pas de C!) pour le regarder.

OriginalL'auteur qwerty | 2015-03-19