#!/usr/bin/perl -w
use strict;
use File::Path;
use IO::File;
sub diskstat {
system("grep sda5 < /proc/diskstats") # Linux ONLY
}
sub f_a {
my $fh = IO::File->new( &genfn(),'>') || die( $!);
$fh->autoflush( 0);
foreach ( 0 .. 5){
$fh->print('h') foreach 0 .. 99999;
sleep( 6);
}
$fh->close;
}
sub f_b {
my $fh = IO::File->new( &genfn(),'>') || die( $!);
$fh->autoflush( 1);
foreach ( 0 .. 5){
$fh->print('h') foreach 0 .. 99999;
sleep( 6);
}
$fh->close;
}
sub f_c {
my $fn = &genfn();
foreach ( 0 .. 5) {
foreach ( 0 .. 99999) {
my $fh = IO::File->new( $fn,'>>') || die( $!);
$fh->print('h');
$fh->close;
}
sleep( 6);
}
}
{
my @conf_a = (
[\&f_a,'f_a'],
[\&f_b,'f_b'],
[\&f_c,'f_c'],
);
foreach my $dir ( map { $_->[1] } @conf_a){
rmtree( $dir);
mkpath( $dir);
}
my $sno = 0;
&diskstat();
foreach my $item ( @conf_a){
local *genfn = sub { $item->[1] . '/' . $sno++ };
$item->[0]->();
sleep( 6);
&diskstat();
}
}
IyEvdXNyL2Jpbi9wZXJsIC13Cgp1c2Ugc3RyaWN0Owp1c2UgRmlsZTo6UGF0aDsKdXNlIElPOjpGaWxlOwoKc3ViIGRpc2tzdGF0IHsKICBzeXN0ZW0oImdyZXAgc2RhNSA8IC9wcm9jL2Rpc2tzdGF0cyIpICMgTGludXggT05MWQp9CgpzdWIgZl9hIHsKICBteSAkZmggPSBJTzo6RmlsZS0+bmV3KCAmZ2VuZm4oKSwnPicpIHx8IGRpZSggJCEpOwogICRmaC0+YXV0b2ZsdXNoKCAwKTsKICBmb3JlYWNoICggMCAuLiA1KXsKICAgICRmaC0+cHJpbnQoJ2gnKSBmb3JlYWNoIDAgLi4gOTk5OTk7CiAgICBzbGVlcCggNik7CiAgfQogICRmaC0+Y2xvc2U7Cn0KCnN1YiBmX2IgewogIG15ICRmaCA9IElPOjpGaWxlLT5uZXcoICZnZW5mbigpLCc+JykgfHwgZGllKCAkISk7CiAgJGZoLT5hdXRvZmx1c2goIDEpOwogIGZvcmVhY2ggKCAwIC4uIDUpewogICAgJGZoLT5wcmludCgnaCcpIGZvcmVhY2ggMCAuLiA5OTk5OTsKICAgIHNsZWVwKCA2KTsKICB9CiAgJGZoLT5jbG9zZTsKfQoKc3ViIGZfYyB7CiAgbXkgJGZuID0gJmdlbmZuKCk7CiAgZm9yZWFjaCAoIDAgLi4gNSkgewogICAgZm9yZWFjaCAoIDAgLi4gOTk5OTkpIHsKICAgICAgbXkgJGZoID0gSU86OkZpbGUtPm5ldyggJGZuLCc+PicpIHx8IGRpZSggJCEpOwogICAgICAkZmgtPnByaW50KCdoJyk7CiAgICAgICRmaC0+Y2xvc2U7CiAgICB9CiAgICBzbGVlcCggNik7CiAgfQp9Cgp7CiAgbXkgQGNvbmZfYSA9ICgKICAgIFtcJmZfYSwnZl9hJ10sCiAgICBbXCZmX2IsJ2ZfYiddLAogICAgW1wmZl9jLCdmX2MnXSwKICAgICk7CiAgZm9yZWFjaCBteSAkZGlyICggbWFwIHsgJF8tPlsxXSB9IEBjb25mX2EpewogICAgcm10cmVlKCAkZGlyKTsKICAgIG1rcGF0aCggJGRpcik7CiAgfQogIG15ICRzbm8gPSAwOwogICZkaXNrc3RhdCgpOwogIGZvcmVhY2ggbXkgJGl0ZW0gKCBAY29uZl9hKXsKICAgIGxvY2FsICpnZW5mbiA9IHN1YiB7ICRpdGVtLT5bMV0gLiAnLycgLiAkc25vKysgfTsKICAgICRpdGVtLT5bMF0tPigpOwogICAgc2xlZXAoIDYpOwogICAgJmRpc2tzdGF0KCk7CiAgfQp9Cg==