procsyskernelsem 可以改吗

procsyskernelsem 可以改吗,第1张

/proc/sys/目录下的文件操作方式有三种,

1,通过sysctl进行操作,

#sysctl debug.edp.xxxx 显示/proc/sys/debug/edp/xxxx的值

#sysctl -w debug.edp.xxxx=1 将/proc/sys/debug/edp/xxxx值设置为1

2,通过常规的echo和cat等方式操作,

#cat /proc/sys/debug//edp/xxxx 显示文件内容

#echo 1 >/proc/sys/debug//edp/xxxx 修改文件内容

3,系统调用open()/write()等函数操作。

需要通过编程来实现。

semget() 可以使用系统调用semget()创建一个新的信号量集,或者存取一个已经存在的信号量集:

系统调用:semget()

原型:intsemget(key_t key,int nsems,int semflg)

返回值:如果成功,则返回信号量集的IPC标识符。如果失败,则返回-1:errno=EACCESS(没有权限)

EEXIST(信号量集已经存在,无法创建)

EIDRM(信号量集已经删除)

ENOENT(信号量集不存在,同时没有使用IPC_CREAT)

ENOMEM(没有足够的内存创建新的信号量集)

ENOSPC(超出限制)

系统调用semget()的第一个参数是关键字值(一般是由系统调用ftok()返回的)。系统内核将此值和系统中存在的其他的信号量集的关键字值进行比 较。打开和存取操作与参数semflg中的内容相关。IPC_CREAT如果信号量集在系统内核中不存在,则创建信号量集。IPC_EXCL当和 IPC_CREAT一同使用时,如果信号量集已经存在,则调用失败。如果单独使用IPC_CREAT,则semget()要么返回新创建的信号量集的标识 符,要么返回系统中已经存在的同样的关键字值的信号量的标识符。如果IPC_EXCL和IPC_CREAT一同使用,则要么返回新创建的信号量集的标识 符,要么返回-1。IPC_EXCL单独使用没有意义。参数nsems指出了一个新的信号量集中应该创建的信号量的个数。信号量集中最多的信号量的个数是 在linux/sem.h中定义的:

得重新编译内核,之前修改源代码的顶层目录下的Makefile文件,比如2.6.29.1内核的Makefile中:VERSION=2PATCHLEVEL=6SUBLEVEL=29EXTRAVERSION=.1


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/344317.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存