File: test_read2.pl

package info (click to toggle)
taktuk 3.7.8-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,252 kB
  • sloc: perl: 6,715; ansic: 1,211; makefile: 188; sh: 161
file content (44 lines) | stat: -rwxr-xr-x 964 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/usr/bin/perl
# Test code aiming at evaluating the cost of sysread system call
# This version reads byte by byte
# Comparison with first version demonstrate the interest of reimplementing
# some basic buffering in Taktuk connectors

my $iterations=$ARGV[0];

my ($un, $deux);
pipe($deux, $un);
my $pid;
my ($buffer1, $buffer2);
if ($pid = fork())
{
  my $number = 1;
  close($un);
  #print "MON PID : $pid\n";
  for (my $i=0;$i<$iterations;$i++)
    {
      for (my $j=0;$j<255;$j++)
        {
          $number = sysread($deux,$buffer2,1);
          #print "$number octets lus : ",$buffer2;
          #print "Caractere : ",$buffer2,"\n";
        }
    }
}
else
{
  close($deux);
  $buffer1 = "abcdefghijklmnopqrstuvwxyz";
  for (my $i=0;$i<4;$i++)
    {
      $buffer1 = $buffer1.$buffer1;
    }
  #print "MON PID : $pid\n";
  open(STDOUT,">&",$un);
  close($un);
  for (my $i=0;$i<$iterations;$i++)
    {
      syswrite(STDOUT,$buffer1,255);
    }
  exit 0;
}