当前位置:  技术问答>linux和unix

删除消息队列的进程需要什么权限

    来源: 互联网  发布时间:2017-03-09

    本文导语:  我创建了一个消息队列,然后把他的权限设为0000,但是进程还是有办法删除消息队列。请问能删除消息队列的进程究竟有什么特别的权限呢?代码如下: #include #include //#include"common.h" int main() {     int msgid,ret;   ...

我创建了一个消息队列,然后把他的权限设为0000,但是进程还是有办法删除消息队列。请问能删除消息队列的进程究竟有什么特别的权限呢?代码如下:

#include
#include
//#include"common.h"

int main()
{
    int msgid,ret;
    struct msqid_ds buf;
    msgid = msgget(111,0666 | IPC_CREAT);
    if(msgid >= 0)
    {
printf("Created a message queue.n");
ret = msgctl(msgid,IPC_STAT,&buf);
if(ret == 0)
    printf("Mode is %o.n",buf.msg_perm.mode);
buf.msg_perm.mode = 0000;
ret = msgctl(msgid,IPC_SET,&buf);
if(ret == 0)
    printf("After changed mode is %o.n",buf.msg_perm.mode);
ret = msgctl(msgid,IPC_RMID,NULL);
if(ret == 0)
    printf("Removed a message queue.n");
    }
    return 0;
}

|
       IPC_RMID
              Immediately remove the message queue and its associated data structure, awakening all  waiting  reader  and  writer
              processes  (with  an  error  return  and errno set to EIDRM).  The calling process must have appropriate (probably,
              root) privileges or its effective user-ID must be either that of the creator or owner of the message queue.


manpage里写的很清楚。 你创建的那么creator和owner都是你,当前进程有效用户ID也是你,那么就可以删除,与Perm无关,

    
 
 

您可能感兴趣的文章:

  • C++ Double Ended Queues(双向队列) 成员 erase():删除一个元素
  • 删除消息队列问题?
  • C++ Priority Queues(优先队列) 成员 pop():删除第一个元素
  • 如何 删除所有的消息队列 (高分)
  • C++ Queues(队列) 成员 pop():删除第一个元素
  • C++ Double Ended Queues(双向队列) 成员 clear():删除所有元素
  • C++ Double Ended Queues(双向队列) 成员 pop_back():删除尾部的元素
  • C++ Double Ended Queues(双向队列) 成员 pop_front():删除头部的元素
  • C++ stl队列Queue用法介绍:删除,插入等操作代码举例
  • 应用程序chinput开机自动启动, 但状态为Defunct的进程(“僵尸”进程), 如何删除?
  • [求助]在hp-unix如何删除本进程的环境变量。
  • 谁能帮几个qmail问题?1、qmail-remote进程?2、怎么控制整个服务器用户的收信设置?3、怎么直接删除某规则的邮件而接收?
  • 不显示删除回复显示所有回复显示星级回复显示得分回复 父子进程间通信:1:共享内存2:信号量:父进程里请求信号量错误,高手帮忙
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Oracle删除当前用户下所有表的方法适用于有或没有删除权限
  • Linux下如何让同组的用户删除自己创建的文件(不用root权限)
  • vsftpd中怎么解决用户删除权限阿?
  • 紧急求救,root用户无权限删除文件
  • 在linux下如何给gid即组授予权限,比如该组可以在/下建立删除更新文件和目录等。
  • 设置了alias以后重新登录就没有了,怎么解决呢?设什么权限可以删除文件?
  • mysql 新增、删除用户和权限分配
  • 创建一个用户赋予仅仅读部分目录权限,不能创建或者删除任何文件
  • C++ Maps 成员 erase():删除一个元素
  • 怎么实现,动态的增加和删除input,删除时用radiobox选中,然后点删除,即可。谢谢
  • C++ MultiMaps 成员 erase():删除元素
  • 100分相送,怎么实现,动态的增加和删除input,删除时用radiobox选中,然后点删除,即可
  • C++ Lists(链表) 成员 erase():删除一个元素
  • 请问:linux中的软件包安装后,怎么删除呀,直接删除吗?
  • C++ Lists(链表) 成员 remove():从list删除元素
  • jquery删除提示框(弹出是否删除对话框)
  • C++ Lists(链表) 成员 unique():删除list中重复的元素
  • vim删除命令"d3e"为什么删除单词的数目不一致?
  • C++ Lists(链表) 成员 pop_front():删除第一个元素
  • 如何删除前面有个-的文件,我的根目录下有个文件叫 -C,请问如何删除?
  • C++ MultiMaps 成员 clear():删除所有元素
  • jquery删除提示框弹出是否删除对话框
  • C++ Lists(链表) 成员 clear():删除所有元素
  • GRUB的删除与逻辑驱动器存在时扩展分区的删除
  • C++ Lists(链表) 成员 remove_if():按指定条件删除元素
  • fedora 删除软件,但是不删除依赖软件
  • C++ Maps 成员 clear():删除所有元素
  • linux 变量内容删除 中有关“最短数据删除”的意思
  • C++ Lists(链表) 成员 pop_back():删除最后一个元素
  • sql server 删除表1某些数据的同时自动删除表2的相关数据的sql代码


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3