本文整理汇总了C++中buffer_put函数的典型用法代码示例。如果您正苦于以下问题:C++ buffer_put函数的具体用法?C++ buffer_put怎么用?C++ buffer_put使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了buffer_put函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: main
int
main(int argc, char* argv[]) {
int fd;
static struct cdb c;
errmsg_iam("cdbget");
if(argc < 3)
die(1, "usage: cdbget data.cdb key");
fd = open(argv[1], O_RDONLY | O_BINARY);
if(fd == -1)
diesys(1, "open");
cdb_init(&c, fd);
if(cdb_find(&c, argv[2], str_len(argv[2])) > 0) {
do {
char* x = malloc(cdb_datalen(&c));
if(!x)
die(1, "out of memory");
if(cdb_read(&c, x, cdb_datalen(&c), cdb_datapos(&c)) == -1)
diesys(1, "cdb_read");
buffer_put(buffer_1, x, cdb_datalen(&c));
buffer_put(buffer_1, "\n", 1);
free(x);
} while(cdb_findnext(&c, argv[2], str_len(argv[2])) > 0);
}
buffer_flush(buffer_1);
}
开发者ID:rsenn,项目名称:dirlist,代码行数:25,代码来源:cdbget2.c
示例2: doit
static int doit(stralloc *out,int s,char ipremote[16],uint16 portremote,char iplocal[16],uint16 portlocal,unsigned int timeout,uint32 netif)
{
buffer b;
char bspace[128];
char strnum[FMT_ULONG];
int numcolons;
char ch;
if (socket_bind6(s,iplocal,0,netif) == -1) return -1;
if (timeoutconn6(s,ipremote,113,timeout,netif) == -1) return -1;
buffer_init(&b,mywrite,s,bspace,sizeof bspace);
buffer_put(&b,strnum,fmt_ulong(strnum,portremote));
buffer_put(&b," , ",3);
buffer_put(&b,strnum,fmt_ulong(strnum,portlocal));
buffer_put(&b,"\r\n",2);
if (buffer_flush(&b) == -1) return -1;
buffer_init(&b,myread,s,bspace,sizeof bspace);
numcolons = 0;
for (;;) {
if (buffer_get(&b,&ch,1) != 1) return -1;
if ((ch == ' ') || (ch == '\t') || (ch == '\r')) continue;
if (ch == '\n') return 0;
if (numcolons < 3) {
if (ch == ':') ++numcolons;
}
else {
if (!stralloc_append(out,&ch)) return -1;
if (out->len > 256) return 0;
}
}
}
开发者ID:comotion,项目名称:ucspi-tcp,代码行数:33,代码来源:remoteinfo6.c
示例3: count_depth
int count_depth() {
char buffer[MAXIMUM_PATH_LENGTH];
size_t len, i, c;
for(;;) {
buffer[0] = '\0';
len = buffer_getline(buffer_0, buffer, sizeof(buffer));
if(len == 0 || buffer[0] == '\0')
break;
if(buffer[len - 1 ] == '/')
len--;
c = 0;
for(i = 0; i < len; i++) {
if(buffer[i] == '/')
c++;
}
buffer_putulong(buffer_1, (unsigned long)c);
buffer_put(buffer_1, " ", 1);
buffer_put(buffer_1, buffer, len);
buffer_put(buffer_1, "\n", 1);
}
buffer_flush(buffer_1);
return 0;
}
开发者ID:rsenn,项目名称:dirlist,代码行数:26,代码来源:count-depth.c
示例4: main
main()
{
int pid;
int wstat;
char ch;
sig_ignore(sig_pipe);
pid = fork();
if (pid == -1) strerr_die2sys(111,"mconnect-io: fatal: ","unable to fork: ");
if (!pid) {
buffer_init(&bin,myread,0,inbuf,sizeof inbuf);
buffer_init(&bout,write,7,outbuf,sizeof outbuf);
while (buffer_get(&bin,&ch,1) == 1) {
if (ch == '\n') buffer_put(&bout,"\r",1);
buffer_put(&bout,&ch,1);
}
_exit(0);
}
buffer_init(&bin,myread,6,inbuf,sizeof inbuf);
buffer_init(&bout,write,1,outbuf,sizeof outbuf);
while (buffer_get(&bin,&ch,1) == 1)
buffer_put(&bout,&ch,1);
kill(pid,sig_term);
wait_pid(&wstat,pid);
_exit(0);
}
开发者ID:KodeKreatif,项目名称:ucspi-tcp,代码行数:33,代码来源:mconnect-io.c
示例5: snap_dump
void snap_dump(char *filename, stralloc *sa)
{
dAVLCursor c;
dAVLNode *node;
char strip[IP6_FMT];
char strnum[FMT_ULONG];
int fd;
fd = open_trunc("filename");
if(fd == -1)
strerr_warn1(ARGV0 "warning: unable to open for tcp.tmp for writing", &strerr_sys);
buffer_init(&wb, write, fd, wbspace, sizeof wbspace);
node = dAVLFirst(&c, t);
while(node)
{
buffer_put(&wb, strnum, fmt_ulong(strnum, node->key));
buffer_puts(&wb, ",");
buffer_put(&wb, strip, ip4_fmt(strip, node->ip4));
buffer_puts(&wb, ",");
buffer_put(&wb, strip, ip6_fmt(strip, node->ip6));
buffer_puts(&wb, ",LOC\n");
node = dAVLNext(&c);
}
buffer_flush(&wb);
close(fd);
}
开发者ID:mdornseif,项目名称:ddns,代码行数:30,代码来源:ddns-cdbout.c
示例6: main
int main (void)
{
PROG = "s6-tai64nlocal" ;
for (;;)
{
unsigned int p = 0 ;
int r = skagetln(buffer_0f1, &satmp, '\n') ;
if (r == -1)
if (errno != EPIPE)
strerr_diefu1sys(111, "read from stdin") ;
else r = 1 ;
else if (!r) break ;
if (satmp.len > TIMESTAMP)
{
tain_t a ;
p = timestamp_scan(satmp.s, &a) ;
if (p)
{
char fmt[LOCALTMN_FMT+1] ;
localtmn_t local ;
unsigned int len ;
localtmn_from_tain(&local, &a, 1) ;
len = localtmn_fmt(fmt, &local) ;
if (buffer_put(buffer_1, fmt, len) < 0)
strerr_diefu1sys(111, "write to stdout") ;
}
}
if (buffer_put(buffer_1, satmp.s + p, satmp.len - p) < 0)
strerr_diefu1sys(111, "write to stdout") ;
satmp.len = 0 ;
}
return 0 ;
}
开发者ID:8l,项目名称:s6,代码行数:33,代码来源:s6-tai64nlocal.c
示例7: x_escape_put
static int
x_escape_put (struct buffer *out, const char *str, unsigned long len, void *data)
{
unsigned long pos;
char ch;
for (;;) {
pos = scan_notcharsetn (str, "<>&", len);
if (pos) buffer_put (out, str, pos);
str += pos;
len -= pos;
if (!len) break;
ch = *str;
switch (ch) {
case '<': buffer_put (out, "<", 4); break;
case '>': buffer_put (out, ">", 4); break;
case '&': buffer_put (out, "&", 5); break;
default: break;
}
++str;
--len;
if (!len) break;
}
return 1;
}
开发者ID:io7m,项目名称:coreland-udoc,代码行数:25,代码来源:udr_xhtml.c
示例8: main
int main(void)
{
struct taia taia;
char stamp[TAIA_TAI64N + 1];
char ch;
stamp[0] = '@';
for (;;) {
if (buffer_get(buffer0, &ch, 1) != 1) { done(); goto FINISH; }
taia_now(&taia);
taia_tai64n(stamp + 1, &taia);
stamp[sizeof(stamp) - 1] = ' ';
buffer_put(buffer1, stamp, sizeof(stamp));
for (;;) {
buffer_put(buffer1, &ch, 1);
if (ch == '\n') break;
if (buffer_get(buffer0, &ch, 1) != 1) { done(); goto FINISH; }
}
}
FINISH:
return 0;
}
开发者ID:io7m,项目名称:coreland-chrono,代码行数:25,代码来源:tai64n.c
示例9: main
int
main(int argc, char **argv, const char *ZEBRA_VTYSH_PATH)
{
struct buffer *b1, *b2;
int n;
char junk[3];
char c = 'a';
memory_init();
if ((argc != 2) || (sscanf(argv[1], "%d%1s", &n, junk) != 1))
{
fprintf(stderr, "Usage: %s <number of chars to simulate>\n", *argv);
return 1;
}
b1 = buffer_new(0);
b2 = buffer_new(1024);
while (n-- > 0)
{
buffer_put(b1, &c, 1);
buffer_put(b2, &c, 1);
if (c++ == 'z')
c = 'a';
buffer_reset(b1);
buffer_reset(b2);
}
buffer_free(b1);
buffer_free(b2);
return 0;
}
开发者ID:rickb59,项目名称:quagga-vrf,代码行数:32,代码来源:test-buffer.c
示例10: print
void print(char *buf,unsigned int len)
{
char tcpheader[2];
uint16_pack_big(tcpheader,len);
buffer_put(&netwrite,tcpheader,2);
buffer_put(&netwrite,buf,len);
buffer_flush(&netwrite);
}
开发者ID:carriercomm,项目名称:tinydnssec,代码行数:8,代码来源:axfrdns.c
示例11: __block_write
static ssize_t __block_write(struct file *file, off_t posit, uint8_t *buf, size_t count)
{
struct blockdev *bd = file->inode->devdata;
int blk_size = bd->ctl->blocksize;
unsigned pos = posit;
// If we are offset in a block, we dont wanna overwrite stuff.
if(pos % blk_size)
{
struct ioreq *req = ioreq_create(bd, READ, pos / blk_size, 1);
struct buffer *br = block_cache_get_first_buffer(req);
ioreq_put(req);
if(!br)
return 0;
// If count is less than whats remaining, just use count.
int write = (blk_size-(pos % blk_size));
if(count < (unsigned)write)
write=count;
memcpy(br->data+(pos % blk_size), buf, write);
atomic_fetch_or(&br->flags, BUFFER_DIRTY);
buffer_put(br);
buf += write;
count -= write;
pos += write;
}
while(count >= (unsigned int)blk_size)
{
ASSERT((pos & ~(blk_size - 1)) == pos);
struct buffer *entry = dm_block_cache_get(bd, pos / blk_size);
if(!entry) {
entry = buffer_create(bd, pos / blk_size, BUFFER_DIRTY, buf);
memcpy(entry->data, buf, blk_size);
dm_block_cache_insert(bd, pos/blk_size, entry, BLOCK_CACHE_OVERWRITE);
} else {
memcpy(entry->data, buf, blk_size);
atomic_fetch_or(&entry->flags, BUFFER_DIRTY);
}
buffer_put(entry);
count -= blk_size;
pos += blk_size;
buf += blk_size;
}
// Anything left over?
if(count > 0)
{
struct ioreq *req = ioreq_create(bd, READ, pos/blk_size, 1);
struct buffer *br = block_cache_get_first_buffer(req);
ioreq_put(req);
if(!br)
return 0;
memcpy(br->data, buf, count);
atomic_fetch_or(&br->flags, BUFFER_DIRTY);
buffer_put(br);
pos+=count;
}
return pos-posit;
}
开发者ID:Dennisbonke,项目名称:DB-OS,代码行数:58,代码来源:blockdev.c
示例12: showstatus
static void showstatus(const char status[19], int r)
{
const char *x;
struct tai when;
struct tai now;
pid = (unsigned char) status[15];
pid <<= 8; pid += (unsigned char) status[14];
pid <<= 8; pid += (unsigned char) status[13];
pid <<= 8; pid += (unsigned char) status[12];
paused = status[16];
want = status[17];
statusflag = status[18];
tai_unpack(status,&when);
tai_now(&now);
if (tai_less(&now,&when)) when = now;
tai_sub(&when,&now,&when);
if (pid) {
buffer_puts(&b,"up (pid ");
buffer_put(&b,strnum,fmt_ulong(strnum,pid));
buffer_puts(&b,") ");
}
else
buffer_puts(&b,"down ");
buffer_put(&b,strnum,fmt_ulong(strnum,tai_approx(&when)));
buffer_puts(&b," seconds");
if (pid && !normallyup)
buffer_puts(&b,", normally down");
if (!pid && normallyup)
buffer_puts(&b,", normally up");
if (pid && paused)
buffer_puts(&b,", paused");
if (!pid && (want == 'u'))
buffer_puts(&b,", want up");
if (pid && (want == 'd'))
buffer_puts(&b,", want down");
if (r > 18) {
switch (statusflag) {
case svstatus_stopped: x = ", stopped"; break;
case svstatus_starting: x = ", starting"; break;
case svstatus_started: x = ", started"; break;
case svstatus_running: x = ", running"; break;
case svstatus_stopping: x = ", stopping"; break;
case svstatus_failed: x=", failed"; break;
default: x = ", status unknown";
}
if (x)
buffer_puts(&b,x);
}
}
开发者ID:AyKo,项目名称:daemontools-encore,代码行数:55,代码来源:svstat.c
示例13: mercy_seek_abs
int mercy_seek_abs(unsigned short row, unsigned short col) {
if (row >= mercy_context.rows ||
col >= mercy_context.cols)
return -1;
if (buffer_puts(buffer_1, MERCY_ESCAPE) ||
buffer_putulong(buffer_1, row + 1) ||
buffer_put(buffer_1, ";", 1) ||
buffer_putulong(buffer_1, col + 1) ||
buffer_put(buffer_1, "H", 1))
return -1;
return 0;
}
开发者ID:illdefined,项目名称:mercy,代码行数:14,代码来源:seek_abs.c
示例14: canSend
unsigned char canSend(CAN_PORT notused, Message *m)
{
unsigned char i;
/* Send the message as raw bytes (note little-endianness of Cortex M3) */
buffer_put(send_buffer, (m->cob_id) & 0xFF);
buffer_put(send_buffer, (m->cob_id) >> 8);
buffer_put(send_buffer, (m->rtr));
buffer_put(send_buffer, (m->len));
for (i= 0; i < (m->len); i++)
buffer_put(send_buffer, m->data[i]);
/* Start sending by enabling the interrupt */
usart_enable_tx_interrupt(USART1);
return 1; // successful
}
开发者ID:JamesLinus,项目名称:ARM-Ports,代码行数:15,代码来源:serial_stm32.c
示例15: buffer_pop
void Lexer::consumeString()
{
m_value = "";
char delim = buffer_pop();
for (;;) {
if (buffer_empty()) {
buffer_put(m_input->get());
}
char current = buffer_peek();
if (current == delim) {
buffer_pop();
break;
}
if (current == std::char_traits<char>::eof()) {
break;
}
m_value.push_back(buffer_pop());
}
m_token = token::string;
}
开发者ID:lncosie,项目名称:ogdf,代码行数:25,代码来源:Lexer.cpp
示例16: send_file_fd
int
send_file_fd (int out_fd, int in_fd, uint64 offset, uint64 size, uint64 *sent)
{
char data_in[BUFFER_INSIZE];
char data_out[BUFFER_OUTSIZE];
struct buffer buf_in;
struct buffer buf_out;
int64 r;
int64 w;
uint64 r_sent = 0;
char *x;
buffer_init (&buf_in, (buffer_op) read, in_fd, data_in, sizeof (data_in));
buffer_init (&buf_out, (buffer_op) write, out_fd, data_out, sizeof (data_out));
for (;;) {
r = buffer_feed (&buf_in);
if (r == 0) break;
if (r == -1) goto FAIL;
x = buffer_peek (&buf_in);
w = buffer_put (&buf_out, x, r);
if (w == -1) goto FAIL;
buffer_seek (&buf_in, r);
r_sent += w;
}
*sent = r_sent;
return 0;
FAIL:
*sent = r_sent;
return -1;
}
开发者ID:io7m,项目名称:coreland-send_file,代码行数:32,代码来源:send_file.c
示例17: main
int
main (int argc, char *argv[])
{
int n = 0;
char *x = NULL;
dns_random_init (seed);
prog = strdup ((x = strrchr (argv[0], '/')) != NULL ? x + 1 : argv[0]);
n = check_option (argc, argv);
argv += n;
argc -= n;
while (*argv)
{
if (!ip4_scan (*argv, ip))
errx (-1, "could not parse IP address `%s'", *argv);
if (dns_name4 (&out, ip) == -1)
errx (-1, "could not find host name for `%s'", *argv);
buffer_put (buffer_1, out.s, out.len);
buffer_puts (buffer_1,"\n");
++argv;
}
buffer_flush (buffer_1);
return 0;
}
开发者ID:siddhesh,项目名称:djbdns,代码行数:28,代码来源:dnsname.c
示例18: usart1_isr
void usart1_isr(void)
{
u8 ch;
//if Receive interrupt
if (((USART_CR1(USART1) & USART_CR1_RXNEIE) != 0) &&
((USART_SR(USART1) & USART_SR_RXNE) != 0))
{
ch=usart_recv(USART1);
buffer_put(&u1rx, ch);
}
if (((USART_CR1(USART1) & USART_CR1_TXEIE) != 0) &&
((USART_SR(USART1) & USART_SR_TXE) != 0))
{
if (buffer_get(&u1tx, &ch) == SUCCESS)
{
//if char read from buffer
usart_send(USART1, ch);
}
else //if buffer empty
{
//disable Transmit Data Register empty interrupt
usart_disable_tx_interrupt(USART1);
}
}
}
开发者ID:alex-sever-h,项目名称:robot,代码行数:28,代码来源:usart.c
示例19: main
int main(int argc,char **argv)
{
int i;
char *x;
char *y;
unsigned int u;
uint32 ttl;
if (!cache_init(200)) _exit(111);
if (*argv) ++argv;
while (x = *argv++) {
i = str_chr(x,':');
if (x[i])
cache_set(x,i,x + i + 1,str_len(x) - i - 1,86400,0);
else {
y = cache_get(x,i,&u,&ttl,0);
if (y)
buffer_put(buffer_1,y,u);
buffer_puts(buffer_1,"\n");
}
}
buffer_flush(buffer_1);
_exit(0);
}
开发者ID:stribika,项目名称:curveprotect,代码行数:27,代码来源:cachetest.c
示例20: buffer_put
void Lexer::consumeIdentifier()
{
m_value = "";
for (;;) {
if (buffer_empty()) {
buffer_put(m_input->get());
}
char current = buffer_peek();
/*
* The XML spec allows much narrower set of valid identifiers, but
* I see not charm in accepting some of the malformed identifiers
* since the parser is not very strict about standard too.
*/
// TODO: Replace it with std::isspace in the future.
if (isspace(current) ||
current == '<' || current == '>' ||
current == '=' || current == '/' || current == '?' ||
current == '"' || current == '\'' ||
current == std::char_traits<char>::eof())
{
break;
}
m_value.push_back(buffer_pop());
}
m_token = token::identifier;
}
开发者ID:lncosie,项目名称:ogdf,代码行数:30,代码来源:Lexer.cpp
注:本文中的buffer_put函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论