буфер потока c - PullRequest
       24

буфер потока c

0 голосов
/ 09 сентября 2011

Я использую C и мне нужен механизм потокового буфера, с помощью которого я могу записать два произвольных байта и прочитать байты. Я бы предпочел что-то, что не зависит от платформы (или, по крайней мере, может работать на OSX и Linux). Кто-нибудь знает какие-нибудь допустимые легковесные библиотеки или код, которые я могу добавить?

Я использовал буферы в libevent, и я могу в конечном итоге пойти по этому пути, но, кажется, излишне иметь libevent в качестве зависимости, когда я не делаю никаких событий, основанных на io.

Ответы [ 2 ]

0 голосов
/ 06 мая 2013

Является ли setbuf(3) (и его псевдонимы) «механизмом», который вы ищете?

Пожалуйста, рассмотрите следующий пример:

#include <stdio.h>

int main()
{
  char buf[256];
  setbuffer(stderr, buf, 256);
  fprintf(stderr, "Error: no more oxygen.\n");
  buf[1] = 'R';
  buf[2] = 'R';
  buf[3] = 'O';
  buf[4] = 'R';
  fflush(stderr);
}
0 голосов
/ 09 сентября 2011

Если вы не возражаете против зависимости от C ++ и некоторых битов STL, вы можете использовать std :: stringstream.Не должно быть слишком сложно написать вокруг него тонкую оболочку C.

...