buffer_init(3diet)
NAME
buffer_init - initialize buffer structure
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); - }