GNU/Linux >> Tutoriels Linux >  >> Linux

Comment limiter le débit d'un tuyau sous Linux ?

Pipe Viewer a cette fonctionnalité.

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

Je dirais que Juliano a la bonne réponse si vous avez cet outil, mais je suggérerais également qu'il s'agit d'un petit exercice de style K&R soigné :écrivez simplement une version spécialisée de cat qui lit un caractère à la fois à partir de stdin , sort chacun vers stdout puis usleep s avant de continuer. Assurez-vous de débloquer la sortie standard, sinon cela fonctionnera plutôt de manière saccadée.

J'ai appelé ce 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;
}

Compilez-le et essayez avec

$ ./slowcat 10 < slowcat.c

l'accélérateur semble conçu spécifiquement pour ça. ex.

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

Linux
  1. Comment installer Python sur Linux

  2. Comment installer Java sur Linux

  3. Comment partitionner un disque sous Linux

  4. Comment utiliser FTP sous Linux pour transférer des fichiers

  5. Comment utiliser la commande tar sous Linux

Comment utiliser BusyBox sous Linux

Comment installer Linux en 3 étapes

Comment j'utilise cron sous Linux

Comment déplacer un fichier sous Linux

Comment trouver des fichiers sous Linux

Comment récupérer un fichier supprimé sous Linux ?