Como mencionei no meu comentário, a questão central é que o a.out
grava em um arquivo, não em stdin
stream, o que significa que pv
não pode receber dados. Quando o seu programa envia dados para stdin
stream, então funciona:
$ ./a.out | pv -ls 200 > /dev/null
201 0:00:00 [2.09M/s] [========================>] 100%
$ cat main.c
#include<stdio.h>
int main(){
int i=0;
for(i;i<=200;i++)
fprintf(stdout,"%d\n",i);
return 0;
}
A propósito, você não precisa usar fprintf()
para gravar em stdout
, um simples printf("%d\n",i);
pode ser suficiente