Eu fiz o seguinte programa C para cat (1) um arquivo pausando um certo número de microssegundos após cada caractere. Exemplo de uso:
$ ./slowcat screenlog.0 2000
se eu quiser parar enquanto assisto, apenas envio o sinal SIGSTOP do meu teclado (Ctrl-S). Eu então envio SIGCONT (Ctrl-Q) para continuar. Ctrl-C para sair.
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>
int main(int argc, char *argv[]) {
int c, ms_wait;
FILE *fp;
char *prog = argv[0]; /* program name for errors */
if (argc == 3) {
ms_wait = atoi(argv[2]);
} else if (argc != 2) {
fprintf(stderr, "Usage: %s file [ms_wait]\n", prog);
exit(1);
} else {
ms_wait = 1000;
}
if ((fp = fopen(argv[1], "r")) == NULL) {
fprintf(stderr, "%s: can't open %s\n", prog, *argv);
exit(1);
}
while ((c = fgetc(fp)) != EOF) {
putchar(c);
usleep(ms_wait);
}
return 0;
}