Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Linux下调用semget()时的EINVAL

Linux下调用semget()时的EINVAL
EN

Stack Overflow用户
提问于 2013-03-12 23:21:28
回答 1查看 1.4K关注 0票数 1

为什么我不能用4个信号量打开semget的信号量集?即:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
semget(key_t key, int nsems, int semflg); 

在nsms为3的情况下调用上面的函数是可以的,但是在nsms为4的情况下,它返回的是负1。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int sempahore = semget((key_t)key,4,IPC_CREAT | MY_PERMS);

仅当我将4改为3时,上述代码才有效

否则errno将返回无效参数

EN

回答 1

Stack Overflow用户

发布于 2013-03-12 23:51:24

根据我的Linux机器上的手册页,如果"nsems小于0或大于每个信号量集的信号量数量限制(SEMMSL),或者与键对应的信号量集已经存在,并且nsems大于该集合中的信号量数量“,则semget可以返回EINVAL

我怀疑你遇到了第二种情况-检查你是否已经创建了一个具有相同键和3个信号量的集合。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15374181

复制
相关文章
Linux下select调用引发的血案
Select函数使用简单,其工作原理大家通常也知道,但是在实际的使用过程中可能并没有严格遵守,而且确实也比较难以完全遵守,除非不使用它。
一见
2018/08/07
1.9K0
进程间通讯(六).semaphore and shared(3)
连接共享内存标识符为shmid的共享内存,连接成功后把共享内存区对象映射到调用进程的地址空间,随后可像本地空间一样访问
franket
2021/09/15
6360
Linux 内核0.11 系统调用详解(下)
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014688145/article/details/50615579
用户1147447
2019/05/26
3.8K1
linux进程间通信方式最常用_linux进程调度
管道可用于具有亲缘关系进程间的通信,有名管道除了具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。
全栈程序员站长
2022/11/10
2.2K0
linux 下c语言调用终端命令
#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_SIZE 1024 int main() { FILE *fstream = NULL; int error=0; char buff[MAX_SIZE]={0}; if(NULL == (fstream=popen("ls -r","w")))//这个应该是写方式的管道 { fprintf(stderr,
流川疯
2022/11/26
7.1K0
Linux下静态库、动态库的创建与调用
在项目开发时,经常会用到第三方库,也会自己创建动态库给别人或者给自己其他的工程项目使用。
DS小龙哥
2022/01/10
5.5K0
Jni教程(一)—Linux下jni调用简介
代码很简单,native来声明该方法非java方法。static代码块来加载动态库。
用户2929716
2018/08/23
2.2K0
Jni教程(一)—Linux下jni调用简介
Linux下跨语言调用C++实践
总第504篇 2022年 第021篇 不同的开发语言适合不同的领域,例如Python适合做数据分析,C++适合做系统的底层开发,假如它们需要用到相同功能的基础组件,组件使用多种语言分别开发的话,不仅增加了开发和维护成本,而且不能确保多种语言间在处理效果上是一致的。本文以美团搜索实际场景下的案例,讲述在Linux系统下跨语言调用的实践,即开发一次C++语言的组件,其他语言通过跨语言调用技术调用C++组件。 1 背景介绍 2 方案概述 3 实现详情 3.1 功能代码 3.2 打包发布 3.3 业务使用 3.4
美团技术团队
2022/04/24
6K0
Linux下跨语言调用C++实践
系统与应用异常定位诊断
描述:官方介绍 strace是一个可用于诊断、调试和教学的Linux用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等。其底层的实现方式是基于ptrace特性;
全栈工程师修炼指南
2020/10/26
7950
系统与应用异常定位诊断
Windows和Linux 导入java https调用接口时的受信任证书
Windows导入信任证书: 1.cd 切换到%JAVA_HOME%/jre/lib/security/下,     注:%JAVA_HOME% 此处例如E:\Program Files\Java\jdk1.8.0_131 2.此处打开命令行: keytool -import -v -trustcacerts -alias sxdzswj -file C:\Users\Administrator\Desktop\湖南\dzswj.cer -storepass changeit -keystore c
跟着飞哥学编程
2022/11/30
1.8K0
Linux 下用 Clion 编写及调用共享库的实践
https://zetaoyang.github.io/post/2016/11/05/linux-shared-object.html
bear_fish
2018/09/19
6.4K0
原 Linux下嵌入汇编代码调用API(u
以下关于fork()的描述来自于:jason314 首先,在Linux环境下,一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不同。相当于克隆了一个自己。 fork调用的一个奇妙之处就是它仅仅被调用一次,却能够返回两次,它可能有三种不同的返回值:     1)在父进程中,fork返回新创建子进程的进程ID;     2)在子进程中,fork返回0;     3)如果出现错误(如系统资源不足),fork
不高不富不帅的陈政_
2018/05/18
2.2K0
Linux下svn提交时必须添加注释的设置
如何在Linux系统下安装svn, 这里暂不介绍,请看本文下方的相关教程,在svn安装目录下有个hooks文件夹, 修改其中的pre-commit.tmpl文件;
知忆
2021/06/19
2.3K0
强大的strace命令用法详解
按照strace官网的描述, strace是一个可用于诊断、调试和教学的Linux用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等。
Lansonli
2021/10/09
2K0
运维利器之万能的 strace
serena
2017/06/28
2.6K1
运维利器之万能的 strace
Linux下c语言中的main函数是如何被调用的
当我们在shell下执行一个程序的时候,shell内部首先会用fork系统调用来新建一个进程,然后再用execve系统调用把目标程序加载到内存中,并将其参数及环境变量等压入栈中,之后再执行目标程序的入口函数。
KINGYT
2019/05/30
3.3K0
python调用调用Linux命令
下面代码演示了调用一个shell命令, 其中,命令的输出会存储到result变量中, 而命令的返回值,则存储到exitcode中,由此可见,调用shell命令还是很方便的:
py3study
2020/01/17
5.2K0
【Linux】Linux系统调用
内核空间——存放的是整个内核代码和所有内核模块,以及内核所维护的数据。 用户空间——用户程序的代码和数据。
半生瓜的blog
2023/05/13
28K0
【Linux】Linux系统调用
Linux下启动进程时修改其环境变量
上面的命令中,第一个env及后面的A=B的作用是,为后面将要执行的命令添加环境变量A,使其值为B。
KINGYT
2019/06/02
5.7K0
Linux进程间通信(中)之信号、信号量实践
我们使用过windows的都知道,当一个程序被卡死的时候不管怎样都没反应,这样我们就可以打开任务管理器直接强制性的结束这个进程,这个方法的实现就是和Linux上通过生成信号和捕获信号来实现相似的,运行过程中进程捕获到这些信号做出相应的操作使最终被终止。
杨源鑫
2020/09/14
5.6K0

相似问题

linux打开调用返回EINVAL的可能原因

31

C调用semget返回错误"semget:没有这样的文件或目录“

16

Linux调用aio_write()失败,错误代码22 (EINVAL)

114

Linux splice()返回EINVAL (“无效参数”)

21

C- Linux Char设备openat()返回EINVAL

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文