Web | This Site

Perl Home
PERL Functions
© 2011 TutorialsPoint.COM

| Home |  | References |  | About TP |  | Advertising

# PERL shmget Function

## Syntax

shmget KEY, SIZE, FLAGS shmget KEY

## Definition and Usage

Returns the shared memory segment ID for the segment matching KEY. A new shared memory segment is created of at least SIZE bytes, providing that either KEY does not already have a segment associated with it or that KEY is equal to the constant IPC_PRIVATE.

## Return Value

- undef on failure

- Shared memory ID

## Example

Try out following example:

    #!/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 following result.

    $perl writer.pl&
    $perl reader.pl

    Pennyfrathingale

Advertisement

Online Image Processing

Indian Baby Names