¿Cómo redirigir la salida de system () a un archivo?

En estoC programa

#include <stdio.h>
#include <fcntl.h>
int main()
{
    int file = open("Result", O_CREAT|O_WRONLY, S_IRWXU);

    dup2(stdout, file);
    system("ls -l");

    return 0;
}

Estoy tratando de redirigir la salida desistema() a un archivo, para eso he usadodup2 Pero no está funcionando.

¿Qué hay de malo con este código??
y, por favor dime si hayalguna forma mejor de hacer esto? (sin uso> en la terminal)

Respuestas a la pregunta(4)

Su respuesta a la pregunta