#include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/ipc.h> #include <sys/msg.h> #include <errno.h> #include <string.h> #include <sys/shm.h> typedef struct { long int nType; char szText[256]; }MSG; int main(int argc, char** argv) { key_t IKey1; int n,nMsgId; MSG msg; struct msqid_ds qds; if((IKey1 = ftok("/etc/profile",1)) == -1) { perror("ftok"); exit(1); } if((nMsgId = msgget(IKey1,0)) == -1) { perror("msgget"); exit(2); } memset(&qds,0x00,sizeof(struct msqid_ds)); if(msgctl(nMsgId,IPC_STAT,&qds)); { //perror("msgctl IPC_STAT"); printf("error happen\n"); exit(3); } printf("msg_perm.mode=%d\n",qds.msg_perm.mode); qds.msg_perm.mode &=(~0222); if(msgctl(nMsgId,IPC_SET,&qds)<0) { perror("msgctl IPC_SET"); exit(3); } memset(&msg,0x00,sizeof(MSG)); msg.nType=2; memcpy(msg.szText,"12345",5); if((n = msgsnd(nMsgId,(const void*)&msg,5,0))<0) { perror("msgsnd"); } if(msgctl(nMsgId,IPC_RMID,NULL)<0){ perror("msgctl IPC_RMID"); exit(5); } return 0; }
控制消息队列权限
猜你喜欢
转载自ssh-2009-126-com.iteye.com/blog/1717334
今日推荐
周排行