c++ - FIFO 块程序,直到其他进程读取
问题描述
我在mkfifo myFIFO
下面的 C++ 代码中使用在 Linux 终端上创建的 FIFO 文件:
#include <iostream>
using namespace std;
#include <stdio.h>
int main(int argc, char** argv) {
FILE* fp = fopen("/tmp/myFIFO", "w");
fprintf(fp, "Hello, world!\n");
fclose(fp);
cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
return 0;
}
该程序一直阻塞,直到其他进程读取myFIFO
。如何避免这种情况?(我希望这种和平的代码保持在 FIFO 中的处理和写入,而不是进行其他进程读取。直到 FIFO 已满,如果可能的话,我可能会丢弃最旧的消息)。
解决方案
推荐阅读
- python - 在 scikit-learn 中保留 PCA 后的索引
- laravel - 在 Laravel 7 中找不到类“Redis”
- apache-spark - 如何通过for循环迭代列并获取值pyspark?
- flutter - 如何在 Dart 中取消延迟的未来?
- mysql - 不知道我忽略了这个 mysql 查询有什么简单的事情
- mql4 - Mql4 订单未关闭自动
- forms - Episerver 多步验证
- java - Android Studio - 如何将ImageView拖放到准确的位置
- excel - 根据 excel 中加权平均值的员工级别数据集分配特定日期
- flutter - 如何在底部导航中换行