Dan*_*ani 3 c++ linux named-pipes
是否可以使用流使用c ++(stl)从命名管道(mkfifo)读取 - 因此没有事先char *buffer[MAX_SIZE]为读取操作定义?
我想读取,直到缓冲区结束并将结果放入std::string.
(当前方法:bytes = read(fd, buffer, sizeof(buffer));需要提前分配某种缓冲区.)
创建的命名管道的mkfifo行为类似于常规文件.因此可以使用std::ifstream和访问它们std::ofstream:
#include <fstream>
#include <iostream>
int main(int, char** argv) {
std::ifstream file{argv[1]};
std::string line;
std::getline(file, line);
std::cout << line << '\n';
}
Run Code Online (Sandbox Code Playgroud)
跑:
mkfifo foobar
./main foobar
Run Code Online (Sandbox Code Playgroud)
其他地方:
echo 'Hello world!' > foobar
Run Code Online (Sandbox Code Playgroud)
...这将导致./main将"Hello world!"打印到标准输出.
| 归档时间: |
|
| 查看次数: |
3487 次 |
| 最近记录: |