fork的共享内存

2023-12-15

我想在两个进程之间创建共享内存。我用了fork()。一个孩子试图改变这个共享的记忆,而母亲又创造了另一个孩子,所以新的孩子试图改变相同的记忆,依此类推。这是我的 C 编程代码。 (Ubuntu)

mylist ch=NUL; 
f=fork();
if(!f){
        pba=shmget(KEYSHM,sizeof(char),0); /*created shared memory*/
        ch=(mylist *) shmat(pba,0,0);
        ch->name=ugur;
        ch->surname=cedric;
...do something...
}
else{
        if(ch)
        printf("this is top of mylist %s"ch->name);
.......do something
}

它从不写 ch->name。为什么?我创建了一个共享记忆。为什么父进程无法读取?


为了共享内存,父进程和子进程必须访问相同的共享内存。

你有两个选择,一个更简单,一个更难:

  • 在分叉之前创建并附加到共享内存。父级和子级都自动可以访问相同的共享内存。

  • 首先分叉,然后父级和子级必须分别附加到共享内存。一旦进程分叉,它们就不再共享内存,特别是在子进程中分配的任何内容在父进程中都无法访问。

您需要分配超过 1 个字符的共享内存来存储有用的字符串,例如名称。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

fork的共享内存 的相关文章

  • 在模板类中声明模板友元类时出现编译器错误

    我一直在尝试实现我自己的链表类以用于教学目的 我在迭代器声明中指定了 List 类作为友元 但它似乎无法编译 这些是我使用过的 3 个类的接口 Node h define null Node
  • 调用 McAfee 病毒扫描引擎

    我收到客户的请求 要求使用他们服务器上的 McAfee 病毒扫描将病毒扫描集成到应用程序中 我做了一些调查 发现 McScan32 dll 是主要的扫描引擎 它导出各种看起来有用的函数 我还发现提到了 McAfee Scan Engine
  • 没有特殊字符的密码验证器

    我是 RegEx 的新手 已经进行了大量搜索 但没有找到任何具体内容 我正在编写一个验证密码字符串的正则表达式 可接受的字符串必须至少具有 4 种字符类型中的 3 种 数字 小写字母 大写字母 特殊字符 我对包含有一个想法 也就是说 如果这
  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • 机器Epsilon精度差异

    我正在尝试计算 C 中双精度数和浮点数的机器 epsilon 值 作为学校作业的一部分 我在 Windows 7 64 位中使用 Cygwin 代码如下 include
  • C++11 删除重写方法

    Preface 这是一个关于最佳实践的问题 涉及 C 11 中引入的删除运算符的新含义 当应用于覆盖继承父类的虚拟方法的子类时 背景 根据标准 引用的第一个用例是明确禁止调用某些类型的函数 否则转换将是隐式的 例如最新版本第 8 4 3 节
  • 从经典 ASP 调用 .Net C# DLL 方法

    我正在开发一个经典的 asp 项目 该项目需要将字符串发送到 DLL DLL 会将其序列化并发送到 Zebra 热敏打印机 我已经构建了我的 DLL 并使用它注册了regasm其次是 代码库这使得 IIS 能够识别它 虽然我可以设置我的对象
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • 方程“a + bx = c + dy”的积分解

    在等式中a bx c dy 所有变量都是整数 a b c and d是已知的 我如何找到整体解决方案x and y 如果我的想法是正确的 将会有无限多个解 由最小公倍数分隔b and d 但我只需要一个解决方案 我可以计算其余的 这是一个例
  • 在 Unity 中实现 Fur with Shells 技术

    我正在尝试在 Unity 中实现皮毛贝壳技术 http developer download nvidia com SDK 10 5 direct3d Source Fur doc FurShellsAndFins pdf Fins 技术被
  • 结构体的内存大小不同?

    为什么第一种情况不是12 测试环境 最新版本的 gcc 和 clang 64 位 Linux struct desc int parts int nr sizeof desc Output 16 struct desc int parts
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • 实例化类时重写虚拟方法

    我有一个带有一些虚函数的类 让我们假设这是其中之一 public class AClassWhatever protected virtual string DoAThingToAString string inputString retu
  • C 函数 time() 如何处理秒的小数部分?

    The time 函数将返回自 1970 年以来的秒数 我想知道它如何对返回的秒数进行舍入 例如 对于100 4s 它会返回100还是101 有明确的定义吗 ISO C标准没有说太多 它只说time 回报 该实现对当前日历时间的最佳近似 结
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite
  • 指针和内存范围

    我已经用 C 语言编程有一段时间了 但对 C 语言还是很陌生 有时我对 C 处理内存的方式感到困惑 考虑以下有效的 C 代码片段 const char string void where is this pointer variable l
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使
  • 使用 WGL 创建现代 OpenGL 上下文?

    我正在尝试使用 Windows 函数创建 OpenGL 上下文 现代版本 基本上代码就是 创建窗口类 注册班级 创建一个窗口 choose PIXELFORMATDESCRIPTOR并设置它 创建旧版 OpenGL 上下文 使上下文成为当前

随机推荐

  • (char *) x 或 (void *) z 是什么意思?

    I know char x意味着指向 char 的指针 但我对什么感到困惑 char x means 这是一个演员阵容 您正在指示编译器处理x就好像它是一个char 无论其真实类型如何 仅当您真正知道自己在做什么时才应使用强制转换 对于某些
  • CSS3 多重变换

    我有一个 css3 动画 我使用下面的代码在 X 轴上旋转立方体 webkit keyframes spin2 from webkit transform rotateX 135deg to webkit transform rotateX
  • 安装因错误而失败 (Eclipse)

    当我尝试安装安装完成时出现错误 安装失败并出现错误 显示日志 即使我以管理员身份运行它也会发生这种情况 我使用的是 Windows 7 Professional 64 位 当我单击显示日志时 这就是我的情况看 2017 04 03 20 3
  • Apache-Ignite 集成作为 Hibernate 二级缓存未启动?

    我正在尝试将 Apache Ignite 设置为我的项目中的第二级 Hibernate 缓存提供程序 但我遇到了一个奇怪的异常 配置如下 POM xml Added
  • ggplot 中其他点的图例

    举这个问题的例子 Link 我想问是否可以在图例中添加额外的蓝点 dat lt data frame cond rep c A B each 10 xvar 1 20 rnorm 20 sd 3 yvar 1 20 rnorm 20 sd
  • 如何将变量从 php 发送到 Android 应用程序?

    大家好 我当前的 Android 应用程序中有一个活动 其中有一个网络视图 我想知道如何从该网站上的 php 获取变量并将其存储到我的 android 应用程序上的变量中 是的 我控制该网站 并且具有完整的编辑功能 我会解释一般需要做的事情
  • 在 OSX 上隐藏 Tkinter 应用程序的控制台

    当我启动基于 GUI Tkinter 的应用程序时 我试图隐藏终端 但是当我双击 OSX 上的 app py 文件时 会出现终端窗口 我尝试将扩展名更改为 pyw 并尝试使用 usr bin pythonw 启动它 但无论如何 终端窗口仍然
  • 无法快速移动键盘视图iOS9

    我需要实现一个拒绝键盘 向下滑动以拒绝 就像 iOS 上的股票消息应用程序中的键盘一样 我有这段代码来获取键盘视图 func keyboardWillShowWithNotification notification NSNotificat
  • 为什么 JQuery ajax 调用后页面会重新加载?

    我的目录如下 根目录 Create php根 资源 js ajaxLibrary js 在我的 create php 文件中 我有一个如下所示的表单
  • 使用位图的列表视图

    我一直在尝试创建列表视图的位图 其中整个列表视图在屏幕上不可见 我在用 Bitmap mBitmap fullView getDrawingCache 创建位图 它适用于屏幕上可见的列表视图部分 但不适用于不可见的部分 我想知道是否可以创建
  • 我可以使用 localhost 在 SDK 中测试 XMLHttpRequest() 吗?

    以下代码似乎不起作用 因为当我尝试在 Google App Engine Python 中获取 选择器 时 它是未定义的 chooser self request get chooser self response out write ch
  • 即使应用程序未运行,也处理 onMessageReceived() 和 onTokenRefresh()

    我有一个包含 2 项服务的应用程序 MessagingService extends FirebaseMessagingService and InstanceIDService extends FirebaseInstanceIdServ
  • 单元格上的 VBA 通配符搜索

    我正在尝试在单元格值中使用通配符搜索来查找某些内容 如果sheet FC Range I2 I LastRowC 中的值 与Sheets Instr Range A130 A190 匹配 表示如果少数字符与上述其他范围匹配 则表 Instr
  • NHibernate 配置连接到 Visual FoxPro 8.0?

    好奇是否有人曾经将 NHibernate 连接到 Visual Foxpro 8 0 我希望连接到遗留数据存储 并且更愿意使用 NHibernate 而不是必须手动编码所有 ADO Net 如果有人有 FoxPro 8 连接的配置 XML
  • 组装为什么lea快?

    我和我的教授交谈过 他说 leaq rax rax 8 比以下速度更快 imulq 9 rax 我问他为什么 在这两种情况下 我们都用几乎相同的数字进行乘法 他说我们不会讨论这个 有人可以帮助我简单地理解为什么 leaq 总体上很快吗 评论
  • 使用页面工厂设计和页面对象模型进行测试,使用 Selenium 和 Java 打开浏览器的两个实例

    我在 Selenium WebDriver 中使用页面对象模型进行了测试 如果我运行以下测试 在 Chrome 浏览器中打开两个窗口 第一个窗口在 URL 行中为空 如何只打开一个带有 onet pl URL 的内容 我尝试删除 Chrom
  • Hibernate 抛出 MultipleBagFetchException - 无法同时获取多个包

    Hibernate 在 SessionFactory 创建期间抛出此异常 org hibernate loader MultipleBagFetchException 无法同时获取多个包 这是我的测试用例 父类 java Entity pu
  • Firebase Storage putBytes 抛出 StorageException:无法上传到 getRoot

    我有以下方法尝试将图像作为字节数组上传到 Kotlin 中的 firebase 存储 但它抛出 StorageException private val storageReference Firebase storage reference
  • Javascript - 使用 for...in 迭代对象时遇到问题

    我有一个动态生成的对象 如下所示 colorArray AR 8BBDE1 AU 135D9E AT 8BBDE1 我试图用它来为地图着色这个插件以及调用插件期间的 颜色 属性 像这样 iniDensityMap vectorMap bac
  • fork的共享内存

    我想在两个进程之间创建共享内存 我用了fork 一个孩子试图改变这个共享的记忆 而母亲又创造了另一个孩子 所以新的孩子试图改变相同的记忆 依此类推 这是我的 C 编程代码 Ubuntu mylist ch NUL f fork if f p