首页 > 代码库 > Linux msgget返回no space left

Linux msgget返回no space left

linux msgget返回no space left

首先要说的是此类标准函数应该养成查看man手册了解其用法及返回值的习惯。

返回no space left 分为两种情况:

1,创建的msg queue个数超过整个系统限制,通过ipcs -l查看系统对msg queue限制的具体个数,通过ipcs -q查看当前已经创建的所有消息队列。我自己遇到的就是这种情况,是因为在可执行程序退出时没有销毁已经创建的msg queue,在反复多次运行后导致达到上限无法再创建成功。

说明需要注意一点,对于可用于进程通信的对象,属于系统资源在进程退出时不会自动销毁,一定要记得手动销毁,ctrl+c也会导致此种资源不能正常被释放。

2,系统inode个数用尽,可通过df -i查看当前的inode使用情况。

Linux msgget返回no space left