cpp
#include <iostream>
#include <fstream>
#include <cstring>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
int main(){
const char* pipeName = "/tmp/pipe1";
std::ifstream pipeIn(pipeName,std::ios::in);
std::string mes;
std::getline(pipeIn,mes);
std::cout << "Received message in Process 2:"<<mes<<std::endl;
pipeIn.close();
unlink(pipeName);
return 0;
}
````
- 发送消息的进程
```cpp
#include <iostream>
#include <fstream>
#include <sys/stat.h>
#include <unistd.h>
int main()
{
const char* pipeName="/pipe1";
mkfifo(pipeName,0666);
std::ofstream pipeOut(pipeName,std::ios::out);
std::string mes;
mes="hello from progreess 1";
pipeOut<<mes;
pipeOUt.close();
unlink(pipeName);
return 0;
}
注意:命名管道是Linux下一种基于文件的通信方式,必须要路径存在于文件系统,且当前用户有权限在路径目录下执行写文件操作