Perl shmread Function



Description

This function reads the shared memory segment ID into the scalar VAR at position POS for up to SIZE bytes.

Syntax

Following is the simple syntax for this function −

shmread ID, VAR, POS, SIZE

Return Value

This function returns 0 on failure and 1 on success.

Example

Following is the example code showing its basic usage −

#!/usr/bin/perl

# Assume this file name is writer.pl

use IPC::SysV;

#use these next two lines if the previous use fails.
eval 'sub IPC_CREAT {0001000}' unless defined &IPC_CREAT;
eval 'sub IPC_RMID {0}'        unless defined &IPC_RMID;

$key  = 12345;
$size = 80;
$message = "Pennyfarthingale.";

# Create the shared memory segment

$key = shmget($key, $size, &IPC_CREAT | 0777 ) or die "Can't shmget: $!";

# Place a string in itl
shmwrite( $id, $message, 0, 80 ) or die "Can't shmwrite: $!";


sleep 20;

# Delete it;

shmctl( $id, &OPC_RMID, 0 ) or die "Can't shmctl: $! ";

Write a reader program which retrieves the memory segment corresponding to $key and reads its contents using shmread();.

#!/usr/bin/perl

# Assume this file name is reader.pl

$key = 12345;
$size = 80;

# Identify the shared memory segment
$id = shmget( $key, $size, 0777 ) or die "Can't shmget: $!";

# Read its contents itno a string
shmread($id, $var, 0, $size) or die "Can't shmread: $!";

print $var;

Now First run writer.pl program in background and then reader.pl then it will produces the following result.

$perl writer.pl&
$perl reader.pl

Pennyfrathingale
perl_function_references.htm
Advertisements