system v訊息佇列msgctl函式

2021-09-02 23:41:09 字數 638 閱讀 9002

/*msgctl函式建立訊息佇列*/

//第乙個引數為訊息佇列的標示符msgid

//第二個引數為執行動作,,,ipc_rmid

//第三個為訊息佇列結構體

#include #include #include #include #include #include #include #define err_exit(m)

do \

while(0)

int main(void)

printf("msgget success\n");

//msgctl(msgid, ipc_rmid, null);//刪除當前開啟的訊息佇列

struct msgid_ds buf;//訊息佇列結構體

msgctl(msgid, ipc_stat, &buf);//獲取訊息佇列結構體中的內容

printf("mode = %o\n", buf.msg_perm.mode);

sscanf("600", "%o", (unsigned int*)&buf.msg_perm.mode);

msgctl(msgid, ipc_set, &buf)//先獲取結構體,再修改其內容

return 0;

}

System V訊息佇列

該函式用於建立乙個新的訊息佇列或訪問乙個已存在的訊息佇列,返回乙個整數識別符號。當建立乙個新的訊息佇列時,msqid ds結構的如下成員被初始化 msg perm結構的uid和cuid成員被設定成當前程序的有效使用者id,gid和cgid成員被設定成當前程序的有效id oflag中的讀寫許可權位存放...

SystemV訊息佇列

從乙個程序傳送資料到另外乙個程序。傳送的是資料塊,這個稱為訊息,訊息有型別,有邊界。每條訊息的最大長度有限制 msgmax 位元組 root localhost cat proc sys kernel msgmax 8192 每個訊息佇列的總位元組數有上限 msgmnb 位元組 root local...

system v 訊息佇列(二)

1 功能 把一條訊息新增到訊息佇列中 2 原型 intmsgsnd int msqid,const void msgp.size t msgsz,int msg 3 引數 msgqid 由msgget函式返回的訊息佇列標識碼 msgp 是乙個指標,指標指向準備傳送的訊息 msgsz 是msgp指向的...