⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 substdo.c

📁 linux下qmail的源码 本人加了一些注释
💻 C
字号:
#include "substdio.h"#include "str.h"#include "byte.h"#include "error.h"static int allwrite(op,fd,buf,len)register int (*op)();register int fd;register char *buf;register int len;{  register int w;  while (len) {    w = op(fd,buf,len);    if (w == -1) {      if (errno == error_intr) continue;      return -1; /* note that some data may have been written */    }    if (w == 0) ; /* luser's fault */    buf += w;    len -= w;  }  return 0;}int substdio_flush(s)register substdio *s;{  register int p;   p = s->p;  if (!p) return 0;  s->p = 0;  return allwrite(s->op,s->fd,s->x,p);}int substdio_bput(s,buf,len)register substdio *s;register char *buf;register int len;{  register int n;   while (len > (n = s->n - s->p)) {    byte_copy(s->x + s->p,n,buf); s->p += n; buf += n; len -= n;    if (substdio_flush(s) == -1) return -1;  }  /* now len <= s->n - s->p */  byte_copy(s->x + s->p,len,buf);  s->p += len;  return 0;}int substdio_put(s,buf,len)register substdio *s;register char *buf;register int len;{  register int n;   n = s->n;  if (len > n - s->p) {    if (substdio_flush(s) == -1) return -1;    /* now s->p == 0 */    if (n < SUBSTDIO_OUTSIZE) n = SUBSTDIO_OUTSIZE;    while (len > s->n) {      if (n > len) n = len;      if (allwrite(s->op,s->fd,buf,n) == -1) return -1;      buf += n;      len -= n;    }  }  /* now len <= s->n - s->p */  byte_copy(s->x + s->p,len,buf);  s->p += len;  return 0;}int substdio_putflush(s,buf,len)register substdio *s;register char *buf;register int len;{  if (substdio_flush(s) == -1) return -1;  return allwrite(s->op,s->fd,buf,len);}int substdio_bputs(s,buf)register substdio *s;register char *buf;{  return substdio_bput(s,buf,str_len(buf));}int substdio_puts(s,buf)register substdio *s;register char *buf;{  return substdio_put(s,buf,str_len(buf));}int substdio_putsflush(s,buf)register substdio *s;register char *buf;{  return substdio_putflush(s,buf,str_len(buf));}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -