Perl 中的 shmget函数

首页 / Perl入门教程 / Perl 中的 shmget函数

描述

此函数返回段匹配KEY的共享内存段ID。创建一个新的共享内存段(至少SIZE个字节),前提是KEY尚未具有与其关联的段,或者KEY等于常量IPC_PRIVATE。

语法

以下是此函数的简单语法-

shmget KEY, SIZE, FLAGS

shmget KEY

返回值

如果失败,此函数返回undef;如果成功,则返回共享内存ID。

无涯教程网

链接:https://www.learnfk.comhttps://www.learnfk.com/perl/perl-shmget.html

来源:LearnFk无涯教程网

以下是显示其基本用法的示例代码-

#!/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

$id=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, &IPC_RMID, 0 ) or die "Can't shmctl: $! ";

编写一个读取程序,该程序检索与$key相对应的内存段,并使用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;

现在,首先在后台运行writer.pl程序,然后在reader.pl中运行,它将产生以下输出。

$perl writer.pl&
$perl reader.pl

Pennyfrathingale

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

深入浅出计算机组成原理 -〔徐文浩〕

To B市场品牌实战课 -〔曹林〕

说透数字化转型 -〔付晓岩〕

性能优化高手课 -〔尉刚强〕

PyTorch深度学习实战 -〔方远〕

eBPF核心技术与实战 -〔倪朋飞〕

李智慧 · 高并发架构实战课 -〔李智慧〕

人人都用得上的数字化思维课 -〔付晓岩〕

Midjourney入门实践课 -〔Jovi〕

好记忆不如烂笔头。留下您的足迹吧 :)