my $packed;
my $n =1000000-1;
my $offset = $n*4;
my $success = shmread($id, $packed, $offset, 4)
####
use warnings;
use strict;
use IPC::SysV qw(IPC_PRIVATE IPC_RMID S_IRUSR S_IWUSR);
open(my $idx, "<", "$ARGV[0].idx") || die "cannot open data file\n $!";
my $idx_size = (split(' ',`wc -c $ARGV[0].idx`))[0];
my $idx_id = shmget(IPC_PRIVATE , $idx_size, S_IRUSR | S_IWUSR) || die "shmfet $!";
my $offset = 0;
foreach my $i (0..$idx_size/1000000) {
my $n="";
read($idx,$n,1000000);
shmwrite($idx_id, $n, $offset, 1000000) || die "shmwrite: $!";
$offset +=1000000;
}
shmctl($idx_id, IPC_RMID, 0) || die "shmctl: $!";
close $idx;
exit;
##
##
$ ipcs -m
##
##
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000000 8454205 valerio 600 4294967296 0
##
##
$ perl -V:archname
archname='x86_64-linux-gnu-thread-multi';