c 编程 shmat() 权限被拒绝

2023-12-10

当我运行我的代码时遇到问题。我的 shmat 失败并且打印权限被拒绝。我在谷歌上搜索了如何解决它,但我不能。我的代码如下:

#include <stdio.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdlib.h>
#include <unistd.h>
#define ERROR -1

int main ( int argc, char *argv[] ) {
    int shmid,key=50;
    int *val;
    int *x;
    int rw = -1;

    // 0 for write and 1 for read 

    shmid = shmget ( key, sizeof( int ), IPC_CREAT );

    if ( shmid == -1 ) {
        perror ( "Error in shmget\n" );
        return ( ERROR );
    }

    val = ( int * ) shmat ( shmid, NULL, 0 );

    if ( val == -1 ) {
        perror ( "Error in shmat\n" );
        return ( ERROR );
    }

    scanf ( "%d", &rw);

    while ( rw >= 0 ) {
        if ( rw == 0 ) {
            //write in the shared memory
            x = ( int * ) malloc ( sizeof ( int ) );

            if ( x == NULL ) {
                perror ( "Error in malloc" );
                return ( ERROR );
            }

            scanf ( "%d", x );

            val = x;

        }
        else {
            // read from the shared memory
            if ( rw == 1 ) {
                printf ( "%d\n", *val );
            }
        }

        scanf ( "%d", &rw );
    }

    return ( 0 );

}

在这段代码中我想测试共享内存。当我给 rw = 1 时,我在共享内存中写入一个整数,否则我读取共享内存的值,然后打印该值。我找不到问题出在哪里......


您创建了共享内存段,并将权限设置为0000:

shmid = shmget ( key, sizeof( int ), IPC_CREAT );

应该

shmid = shmget ( key, sizeof( int ), IPC_CREAT | 0660 );

或类似的。

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

c 编程 shmat() 权限被拒绝 的相关文章

  • C++ std::accumulate 没有给出预期的总和

    double numbers 1 0 5 0 333333 0 25 0 2 0 166667 0 142857 0 125 0 111111 0 1 std vector
  • 为什么 std::vector 可以处理类定义中的不完整类型?

    出现了以下问题 C 标准似乎说 std vector需要一个完整的类型才能工作 看https en cppreference com w cpp container vector https en cppreference com w cp
  • 使用管道在父级和子级之间传递整数值

    我对如何正确使用 pipeline 在两个进程之间传递整数值有点困惑 在我的程序中 我首先创建一个管道 然后分叉它 我假设我有 两个 管道 据我了解 这是我的任务 我的父母通过 for 循环检查某个操作的整数值 i 增加计数变量 并将值保存
  • 非模板函数中的尾随返回类型[重复]

    这个问题在这里已经有答案了 我见过有人使用以下语法来实现函数 auto get next gt int 代替 int get next 我理解两者 并且我知道尾随返回类型语法对于使用 decltype 的模板代码很有用 就我个人而言 我会避
  • 无法在 CUDA 中找到 1 到 100 数字的简单和?

    我正在研究使用 CUDA 的图像处理算法 在我的算法中 我想使用 CUDA 内核找到图像所有像素的总和 所以我在cuda中制作了内核方法 来测量16位灰度图像的所有像素的总和 但我得到了错误的答案 所以我在cuda中编写了一个简单的程序来查
  • 来自 double 的 static_cast 可以优化分配给 double 吗?

    我偶然发现了一个我认为不必要的功能 并且通常让我感到害怕 float coerceToFloat double x volatile float y static cast
  • 每个元素的 asp.net Web 表单自定义错误消息

    我创建了一个 Web 应用程序 表单 以及后端 SQL 插入和查询 目前我正在显示所有用户错误消息 div style padding 1em div
  • 获取列表框中视图中的项目

    我有一个 ListBox 其属性 VirtualizingStackPanel VirtualizationMode 设置为 回收 我正在绑定一个自定义集合 实现IList and IList
  • C# 结构默认值

    我有一个方法 它接受一个包含许多具有基本数据类型的字段的结构 我想传递大部分默认值 但需要进行一些调整 但我了解结构声明中的基本字段不能包含默认值声明 例如struct S int a 42 现在是这样的 OptionsStruct opt
  • 维护 VS Test Project 中单元测试方法之间的上下文

    我想按顺序运行以下单元测试 使用随机数字的名称 密码等创建新客户 检索刚刚创建的客户并断言其属性包含相同的随机数 对同一用户调用 ForgotPassword 函数 并使用相同的随机数作为用户名 清楚地看到 我需要生成一次随机数 并在 3
  • 公交车公共交通算法

    我正在开发一个可以查找公交路线的离线 C 应用程序 我可以提取时间表 巴士 路线数据 我正在寻找适用于基本数据的最简单的解决方案 可以使用什么算法来查找从巴士站 A 到巴士站 B 的路线 是否有适用于 C Java 的开源解决方案 数据库的
  • 从图像创建半透明光标

    是否可以从图像创建光标并使其半透明 我目前正在拍摄自定义图像并覆盖鼠标光标图像 如果我可以将其设为半透明 那就太好了 但不是必需的 销售人员喜欢闪亮的 目前正在做这样的事情 Image cursorImage customImage Get
  • 更改私有模块片段是否会导致模块重新编译?

    On 此页面有关 C 20 模块功能 https www modernescpp com index php c 20 modules private module fragment and header units 我发现了这样的说法 借
  • MINIX内部碎片2

    我正在用 C 语言编写一些软件 它递归地列出给定目录中的所有文件 现在我需要计算出内部碎片 我花了很长时间研究这个问题 发现 ext2 上的内部碎片只发生在最后一个块中 我知道理论上你应该能够从索引节点号获得第一个和最后一个块地址 但我不知
  • 将 AutomationID 与 ListView 结合使用

    我正在尝试将 AutomationId 附加到列表视图中的项目 理想情况下 将项目名称绑定到显示的项目
  • 从单应性估计 R/T

    我一直在尝试计算 2 个图像中的特征 然后将这些特征传递回CameraParams R没有运气 特征已成功计算并匹配 但是问题是将它们传递回R t 我明白你必须分解Homography为了使这一点成为可能 我已经使用如下方法完成了 http
  • g++ / gcc 是否支持 C++20 新的atomic_flag 功能?

    根据参考参数 https en cppreference com w cpp atomic atomic flag c 20 有丰富的 对我来说有用的 支持atomic flag运营 然而 目前尚不清楚 gcc 是否支持这些功能 它们在任何
  • 使用未命名命名空间而不是静态命名空间

    我可以假设在未命名命名空间中声明的对象相当于static namespace int x 1 static int x 2 FWIK 在这两种情况下 x将具有静态存储期限和内部链接 声明为的对象的所有规则也是如此static适用于未命名名称
  • java有类似C#的属性吗? [复制]

    这个问题在这里已经有答案了 C 属性 我的意思是 get 和 set 方法 是一个非常有用的功能 java 也有类似 C 的属性吗 我的意思是我们如何在 java 中实现类似以下 C 代码的内容 public string Name get
  • Adobe Illustrator 中的折线简化如何工作?

    我正在开发一个记录笔划的应用程序 您可以使用定点设备来绘制笔划 在上图中 我绘制了一个笔划 其中包含 453 个数据点 我的目标是大幅减少数据点的数量 同时仍然保持原始笔画的形状 对于那些感兴趣的人 上图笔画的坐标可以作为GitHub 上的

随机推荐

  • Sonata 用户 - 自定义字段的安全性

    我使用 SonataUser 和 FOSUser 来管理我的用户并创建了一个自定义字段company将每个都附加到特定的公司 现在我只需要让用户能够仅管理属于同一公司的用户 user1 company1 user2 company1 use
  • 如何在基于WPF的应用程序中限制光标移动?

    我正在使用 WPF 应用程序 更具体地说是具有可拖动元素的 Canvas 拖动项目后 我想将光标移动的范围限制在项目被拖动的画布内部 可以开始拖动的事件如下所示 private void WidgetCanvas PreviewHeader
  • 将标准 Base64 编码流输出为 PDF 格式 (PHP)

    我正在使用 Royal Mail Shipping API 生成打印的 PDF 标签 我的 PHP SoapClient 返回如下所示的有效响应 仅显示初始响应 因为整个响应很大 PDF 1 7 4 0 obj lt gt stream x
  • Python不断覆盖先前绘图上的历史记录,但不将其保存为所需的绘图

    我正在保存两个单独的图形 每个图形应包含 2 个图 问题是第一个图没问题 但第二个图不会在新图上被覆盖 而是在前一个图上被覆盖 但在保存的图中 我只找到其中 一个图 这是第一个数字 我正确地得到了第一个数字 import scipy sta
  • 如果用户已经登录,则重定向到主页[重复]

    这个问题在这里已经有答案了 可能的重复 当已通过身份验证的用户访问登录页面时如何重定向到另一个页面 如果登录用户点击login jsp页面 那么他应该会自动重定向到他的home jsp 在身份验证用户转到之前login jsp在通过 ser
  • Cygwin 上的 Makefile

    我正在尝试在 Windows 7 x64 上使用 Cygwin 来使用 makefile 我输入 make 得到的错误是 make 未指定目标且未找到 makefile 停止 生成文件 CC g CFLAGS g Wall pedantic
  • 页面渲染上的自定义 html 标签由于某种原因跳过 HTML 解析

    我不知道为什么会发生这种情况 但如果确实有很多这样的元素 看起来自定义 html 标签无法在页面加载时正确解析其内容 document registerElement x tag prototype Object create HTMLEl
  • 家谱的 Graphviz 点边缘端口

    I am very接近能够生成一个看起来并不糟糕的家谱 但我遇到了以下问题 file tree dot digraph edge dir none node fillcolor black fixedsize true shape box
  • 当我的应用程序指向其他地方时,如何使用 Url.Action 和 Html.ActionLink?

    我在 apps server com appname 上托管了一个 C MVC 应用程序 但我在公司的 F5 上进行了 URL 重写 使该应用程序对 www server com apps appname 可见 现在 当我导航到该 url
  • 如何使用 SDL Tridion TOM.NET API 获取页面或组件的已发布时间戳

    我正在尝试使用 TOM NET API 获取给定页面或组件到给定目标的已发布时间戳 这并不是立即显而易见的Page or Component对象 有人能指出我正确的方向吗 您可以使用PublishEngine GetPublishInfo
  • 如何在Java中复制HashMap(不是浅复制)

    我需要复印一份HashMap
  • UI 之外用于 javascript 链接的闪亮模块命名空间

    我正在尝试使用闪亮的模块来重用 UI 和服务器代码来呈现共享相同演示文稿的三个不同数据集 在 UI 服务器代码之外使用基于 JavaScript 的模态弹出链接创建时 在处理命名空间时遇到了一些挑战 这是我的非工作应用程序代码 librar
  • 大括号扩展和参数扩展的顺序

    StackOverflow 上的常见比喻bash is 为什么不x 99 echo 1 x work 答案是 因为大括号在参数 变量之前展开 因此 我认为应该可以使用单个变量来扩展多个变量 和一个支架 我预计a 1 b 2 c 3 echo
  • 如何使 FlowLayout 包裹在其 JSplitPane 中?

    我编写此代码示例是为了说明我的程序遇到的问题 我希望能够将 JSplitPane 的滑块向左滑动 超出按钮的边缘 压缩 JPanel 并使 FlowLayout 将按钮包装到第二行 相反 JSplitPane 不允许我将滑块移过屏幕上最右边
  • 反序列化时的备用属性名称

    关于这个问题 使用 Json net 序列化时如何更改属性名称 当然 很好 但是我可以把蛋糕吃掉吗 我正在寻找一种令人赏心悦目的方式 为属性提供一个备用名称 使得字符串可以包含其中之一 就像是 BetterJsonProperty Prop
  • Android 构建错误

    当尝试在 Eclipse 中构建我的应用程序时 我遇到了这些错误 当编译器警告我我的 project 文件丢失时 事情开始走下坡路 然后我尝试修复该项目 现在收到以下错误 构建期间发生错误 在项目 net learn2develop Lay
  • 如何关闭 dropwizard 应用程序?

    我正在尝试使用 dropwizard 提出一个微服务 该文档讲述了如何启动应用程序 但没有提及如何优雅地终止它 例如 apache tomcat 都有启动and关闭脚本 那么有谁知道除了按之外如何终止 dropwizard 应用程序Ctrl
  • Python如何通过多重继承传递__init__参数

    我有这段代码 显示了经典的菱形图案 class A def init self x print A x class B A def init self x print B x super init b class C A def init
  • 如何从react调用存储过程

    我得到了一个已经用 ASP NET 开发的网站 我需要在 React 中开发同样的东西 下面是在 net 中编写的代码 用于在用户单击登录时调用存储过程 Dal objDal new Dal DataSet ds objDal ByText
  • c 编程 shmat() 权限被拒绝

    当我运行我的代码时遇到问题 我的 shmat 失败并且打印权限被拒绝 我在谷歌上搜索了如何解决它 但我不能 我的代码如下 include