8、C++ 编程中的管道通信与对象基础

C++ 编程中的管道通信与对象基础

一、命名管道

命名管道比匿名管道更复杂,它具有字符名称,在文件系统(FS)中用户可以观察到它。命名管道在进程使用完后不会自动销毁,而是在执行特定的系统调用 unlink() 时才会被删除,因此具有持久性。

以下是通过 CLI 命令演示命名管道的示例:

$ ./test > fifo_example 
$ cat fifo_example 
$ Child: Sending message to child!

下面是使用 C++ 代码实现命名管道通信的示例:

#include <sys/stat.h> 
#include <unistd.h> 
#include <array> 
#include <iostream> 
#include <filesystem> 
#include <string_view> 
using namespace std; 
using namespace std::filesystem; 
static string_view fifo_name     = "example_fifo"; // {1} 
static constexpr size_t buf_size = 64; 

void write(int out_fd, string_view message) { // {2} 
    write(out_fd, messa
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值