Почему ReadFile на Stdin с размером не менее 64 киб висит под SSH?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Почему ReadFile на Stdin с размером не менее 64 киб висит под SSH?

Сообщение Anonymous »

Вопрос < /h2>
Я пытаюсь понять следующие симптомы: < /p>

[*] У меня есть программа C ++, которая использует Windows

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

ReadFile< /code>
для чтения (и отбросить) все stdin. < /p>
< /li>
  readfile < /code> Вызов Указывает размер чтения 0x10000 (65536) Bytes.
(проблема возникает с этим размером или чем -то большим.) через Cygwin ssh localhost 
.

[*] Я использую cygwin dd для подачи 200 КБ данных (все нулы).

[*] wans. Ctrl+C убивает dd < /code> и ssh < /code>, но оставляет программу
запуска, поэтому я должен убить ее с помощью проводника процесса или менеджера задач. < /P>
< /li>
< /ul>
, но: < /p>

, если я определен 0x. работает.

[*] Если я запускаю программу напрямую (без ssh ), все работает.

Если я вместо этого использую dd как потребитель, все работает. Таким образом, я могу надежно обработать
, какая бы ни была проблема.

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

// readfile.cc
// Just read (and discard) all of stdin using ReadFile.

#include                      // std::atoi
#include                     // std::{cout, endl}
#include                       // std::vector

#include                    // ReadFile, etc.

#define DIAG(stuff) std::cout 
~/tmp$ dd if=/dev/zero bs=200k count=1 status=none | ssh localhost tmp/readfile 65536
[hang]
Продолжение, если я теперь убью readfile в процессе Explorer, я вижу:

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

maxSize: 65536
calling ReadFile with size 65536
ReadFile: bytesRead=65536
calling ReadFile with size 65536
Exit 1           [This is printed by my shell.]
< /code>
Для ясности поток данных между программами: < /p>
dd (Cygwin) -> ssh (Cygwin) -> sshd (Cygwin) -> readfile.exe (Native Windows)
< /code>
На основе вывода выше, кажется, что подвес происходит в вызове
second readfile < /code>, хотя этот вывод только появляется  после < /em> I Убиваю
процесс.   Одна возможность состоит в том, что SSH < /code>-это буферизацию, но если это так,
я не вижу опции
, чтобы отключить
that.
run, показывающий, что это нормально с немного меньшим размером: < /p>
< /p>


Подробнее здесь: [url]https://stackoverflow.com/questions/79729658/why-does-readfile-on-stdin-with-size-at-least-64kib-hang-under-ssh[/url]
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Почему ReadFile на Stdin с размером не менее 64 киб висит под SSH?
    Anonymous » » в форуме C++
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Почему ReadFile на Stdin с размером не менее 64 киб висит под SSH?
    Anonymous » » в форуме C++
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Ограничение размера активов: следующие активы (ы) превышают рекомендуемый ограничение размера (244 киб) в сборнике расск
    Anonymous » » в форуме Html
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Используйте C# SSH.NET с закрытым ключом, хранящимся в ssh-agent.
    Anonymous » » в форуме C#
    0 Ответы
    88 Просмотры
    Последнее сообщение Anonymous
  • Время ответа Powershell POSH-SSH или SSH.NET слишком велико
    Anonymous » » в форуме Linux
    0 Ответы
    100 Просмотры
    Последнее сообщение Anonymous

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