Podrías leer directamente desde el flujo de entrada de tu programa
esto lo consigues simplemente haciendo
File *fichero;
fichero = stdin;
a partir de alli puedes hacer cualqueir cosa que harias con un fichero , por ejemplo el
siguiente programa redirige la salida de dir al programa y le agrega una doble linea entre impresión e impresión
#include <stdio.h>
#define MAX 50
int getLine(FILE *fichero , char s[], int lim){
int c, i;
i=0;
while(--lim
> 0&&(c
=fgetc(fichero
))!=EOF
&& c
!='\n') s[i++] = c;
if(c=='\n')
s[i++] = c;
s[i]='\0';
return i;
}
int main(){
FILE *fichero;
fichero = stdin;
char linea[MAX];
while((getLine(fichero , linea , MAX)) > 0){
printf("\n======================================================="); printf("%s", linea
); // imprime las lineas que encuentra en el flujo de entrada ! }
}
haciendo esto lo que podrias hacer es
comando | nombrePrograma
ya me dirás algo ....
de echo no tienes ni que declarar la variable fichero podrías hacer lo sigueinte y seguiria funcionando
while((getLine(stdin , linea , MAX)) > 0)