add iob_write (to write an io batch through a callback)

This commit is contained in:
leitner
2004-11-25 22:55:46 +00:00
parent ccba2abe9b
commit b48ce77792
9 changed files with 29 additions and 89 deletions

View File

@@ -1,17 +1,24 @@
#include <assert.h>
#include "iob.h"
#include "buffer.h"
#include <unistd.h>
static int64 write_cb(int64 fd,const void* buf,uint64 len) {
if (len>2) len=2;
return write(fd,buf,len);
}
int main() {
int64 fd;
io_batch* b;
int64 r;
assert(io_readfile(&fd,"GNUmakefile"));
assert(b=iob_new(10));
assert(iob_addbuf(b,"Huhu",4));
assert(iob_addbuf(b," fnord\n",7));
assert(iob_addfile(b,fd,10,10));
buffer_puts(buffer_2,"iob_send returned ");
buffer_putlong(buffer_2,iob_send(1,b));
buffer_putsflush(buffer_2,".\n");
do {
r=iob_write(1,b,write_cb);
} while (r>0);
return 0;
}