SYNTAX

#include <buffer.h>

void buffer_init(buffer &b,

                ssize_t (*op)(int,char*,size_t),
                int fd, char* y, size_t ylen);

DESCRIPTION

buffer_init prepares b to store a string in y[0], y[1], ..., y[ylen-1]. Initially the string is empty.

buffer_init also prepares b to use the read/write operation specified by op and fd.

You can use

  buffer b = BUFFER_INIT(op,fd,y,ylen);

to initialize b statically if op, fd, y, and ylen are compile-time constants.

You can call buffer_init again at any time. Note that this discards the currently buffered string.

EXAMPLE

  #include <buffer.h>
  #include <open.h>
  char buf[4096];
  int fd=open_read("/etc/services");
  buffer input;
  if (fd>=0) {
    char x;
    buffer_init(&input,read,fd,buf,sizeof buf);
    while (buffer_get(&input,&x,1)==1) {
      buffer_put(buffer_1,&x,1);
      if (x=='\n') break;
    }
    buffer_flush(buffer_1);
  }

RELATED TO buffer_init…