日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網營銷解決方案
掌握Linux中IPC的秘訣(linuxipcs)

IPC(Inter-process communication)是程序之間通信的一種重要方法。在linux系統(tǒng)中,IPC通信有以下幾種方式:

一、管道(Pipe)

管道是最簡單的一種IPC通信方式,主要實現(xiàn)連個進程之間的通信。

1.管道有兩種,一種是有名管道(FIFO),另一種是無名管道(pipe)。

2.有名管道是一個特殊的文件,有訪問和操作方法,可以實現(xiàn)多進程間的數(shù)據(jù)通信。

3.無名管道只能用于父子進程間的通信,不能用于兄弟進程間的通信,且管道有往管道里寫數(shù)據(jù),也可以從管道讀出數(shù)據(jù)。

//有名管道的創(chuàng)建:

#include

#include

#include

#include

#include

void main(){

int fd;

if(mkfifo(“fifo”,0777)

printf(” Creat fifo error!\n”);

}

if((fd=open(“fifo”,O_WRONLY))

printf(” open fifo error!\n”);

}

printf(“fd = %d \n”,fd);

//待寫入管道的數(shù)據(jù)

char str1[]=”Hello! I’m pipe!”;

write(fd, str1, strlen(str1));

}

二、消息隊列(Message Queue)

消息隊列是一種以特定的消息格式存放數(shù)據(jù)的一種任務處理機制。它可以實現(xiàn)不同進程間的數(shù)據(jù)傳輸,這是一種比較高級的IPC通信機制。

//消息隊列的創(chuàng)建:

#include

#include

int main(){

int msg_id;

KEY_t key;

key=ftok(“/etc/profile”,’a’);

msg_id=msgget(key,IPC_CREAT);

printf(“%d \n”,msg_id);

//希望往消息隊列寫入的數(shù)據(jù)

char message[]=”It’s a message!”;

struct message{

long type;

char text[100];

}msg;

msg.type=3;

strcpy(msg.text,message);

//寫入消息隊列

msgsnd(msg_id,(void *)&msg,sizeof(msg),IPC_NOWAIT);

return 0;

}

三、信號量(Semaphore)

信號量也被稱為二值信號量,是一個相對較發(fā)較復雜的IPC通信方式,主要解決的是資源的共享和保護,它的實現(xiàn)主要是借助于進程同步的一種特殊機制。

//信號量的創(chuàng)建:

#include

#include

key_t key;

//創(chuàng)建一個鍵值

key=ftok(“/etc/profile”,’a’);

//根據(jù)鍵值創(chuàng)建一個信號量

int sem_id=semget(key,1,IPC_CREAT);

//對信號量進行初始化

union semum{

int val;

};

union semum sem_arg;

sem_arg.val=1;

semctl(sem_id,0,SETVAL,sem_arg);

以上就是Linux中IPC的秘訣,三種不同IPC機制分別滿足不同需求,可以按照不同情況來使用。

香港服務器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網服務提供商,擁有超過10年的服務器租用、服務器托管、云服務器、虛擬主機、網站系統(tǒng)開發(fā)經驗。專業(yè)提供云主機、虛擬主機、域名注冊、VPS主機、云服務器、香港云服務器、免備案服務器等。


網站標題:掌握Linux中IPC的秘訣(linuxipcs)
當前地址:http://www.5511xx.com/article/djcojjd.html