PureBasic

ReadProgramData()

Синтаксис

Result = ReadProgramData(Program , *Buffer , Size)

Описание


Читает данные из вывода указанной программы (stdout) и помещает их в заданный буфер. Эта функция ждет, пока не будут доступны данные для чтения из программы (то есть, блокирует читающую программу, пока не будут считаны данные). Чтобы предотвратить это ожидание, вначале можно использовать функцию AvailableProgramOutput(), чтобы проверить, есть ли что-то для чтения.

Параметры

Program Номер идентифицирующий указанную программу, из которой требуется прочитать данные. Этот Номер должен быть получен ранее, при вызове функции RunProgram() во время запуска указанной программы. Программа должна быть запущена с флагом #PB_Program_Read.
*Buffer Буфер памяти для сохранения прочитанных данных. Буфер памяти может быть создан с помощью функции AllocateMemory().
Size Размер в байтах данных, которые требуется прочитать. Буфер должен быть достаточно большим, чтобы вместить это количество данных.

Возвращаемое значение

Количество фактически прочитанных байтов.

Комментарии

Функция читает не более 'size' байт, возможно менее, если столько нет в наличии (но она не возвратит ноль байт, потому что всегда ждёт каких-то данных для чтения). Чтобы узнать, сколько данных было прочитано, проверьте возвращаемое значение. Однако функция остаётся заблокированной на неопределенный срок, если программа запрашивает вмешательство пользователя. Например, программа требует: "Для продолжения работы нажмите ДА или НЕТ".

См. также

ReadProgramString()

Поддерживаемые OS

Все

<- ProgramRunning() - Оглавление Process - ReadProgramError()->