Названные трубки/FIFO сдерживание на macOS с C ++C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Названные трубки/FIFO сдерживание на macOS с C ++

Сообщение Anonymous »

Код ниже работает, как и ожидалось в Linux, когда запускается следующим образом: < /p>

Код: Выделить всё

mkfifo /tmp/{a,b}
./a.out 0  & ./a.out 1 &
< /code>
Результаты < /p>
hello
bye
hello
bye
...
< /code>
На macos, однако, он просто задерживает. Кажется, что Ofstream :: flush () 
может быть недостаточно?

Код: Выделить всё

#include 
#include 
#include 

using namespace std;

int main(int argc, char** argv)
{
ifstream in;
ofstream out;
string a;

assert(argc > 1);
if (atoi(argv[1]))
{
in.open("/tmp/a");
out.open("/tmp/b");
}
else
{
out.open("/tmp/a");
in.open("/tmp/b");
}

while (true)
{
if (atoi(argv[1]))
{
out  a;
cout  a;
cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/79641441/named-pipes-fifo-stalling-on-macos-with-c[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»