GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie beschränke ich eine Pipe unter Linux?

Pipe Viewer hat diese Funktion.

cat /dev/urandom | pv -L 3k | foo

Ich würde sagen, dass Juliano die richtige Antwort hat, wenn Sie dieses Tool haben, aber ich würde auch vorschlagen, dass dies eine nette kleine Übung im K&R-Stil ist:Schreiben Sie einfach eine spezialisierte Version von cat, die jeweils ein Zeichen aus stdin , gibt jeweils an stdout aus und dann usleep s, bevor Sie weitermachen. Unbedingt die Standardausgabe entpuffern, sonst läuft diese ziemlich ruckelig.

Ich habe das slowcat.c genannt :

#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;
}

Kompilieren Sie es und versuchen Sie es mit

$ ./slowcat 10 < slowcat.c

Gaspedal scheint speziell konstruiert zu sein dafür. zB

cat /dev/urandom | throttle -k 3 | foo

Linux
  1. So verwenden Sie BusyBox unter Linux

  2. Wie ich Cron unter Linux verwende

  3. So verwenden Sie FTP unter Linux zum Übertragen von Dateien

  4. Wie kann /dev/urandom zur Linux-Soundausgabe geleitet werden?

  5. Wie konvertiere ich einen .ppk-Schlüssel in einen OpenSSH-Schlüssel unter Linux?

So installieren Sie Linux in 3 Schritten

So verschieben Sie eine Datei unter Linux

So finden Sie Dateien unter Linux

Wie leite ich zum Split-Befehl von Linux?

Wie stellt man eine entfernte Datei unter Linux wieder her?

Wie schneide ich eine Datei unter Linux auf eine bestimmte Größe?