Tôi muốn nói rằng Juliano đã có câu trả lời đúng nếu bạn có công cụ đó, nhưng tôi cũng muốn đề nghị rằng đây là một chút K & R phong cách tập thể dục gọn gàng: chỉ cần viết một phiên bản đặc biệt của mèo mà đọc một ký tự cùng một lúc từ stdin
, kết quả đầu ra từng đến stdout
và sau đó usleep
s trước khi di chuyển trên. Hãy chắc chắn để giải nén đầu ra tiêu chuẩn , nếu không điều này sẽ chạy khá giật.
Tôi gọi nó là slowcat.c
:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main(int argc, char**argv){
int c;
useconds_t stime=10000; // defaults to 100 Hz
if (argc>1) { // Argument is interperted as Hz
stime=1000000/atoi(argv[1]);
}
setvbuf(stdout,NULL,_IONBF,0);
while ((c=fgetc(stdin)) != EOF){
fputc(c,stdout);
usleep(stime);
}
return 0;
}
Biên dịch nó và thử với
$ ./slowcat 10 < slowcat.c