Кажется, у вас проблема XY
Что вы действительно хотите сделать - это захватить вывод другой команды. Вся «буферная» часть - ваш первый удар при ответе. Это не поможет вам, и на самом деле вы застряли в неправильном направлении.
badgerr предлагает несколько решений, но наиболее распространенным является popen("ifconfig -a", "r")
. Это не возвращает буфер, он возвращает FILE*
, который вы можете передать fread
. Это функция POSIX, доступная в Linux.
В Windows вы вызываете CreateProcess
и передаете структуру STARTUPINFO
, содержащую dwFlags=STARTF_USESTDHANDLES
и hStdOutput=ResultOfCreatePipe
.