📄 setvbuf.c
字号:
/* * pANS stdio -- setvbuf */#include "iolib.h"int setvbuf(FILE *f, char *buf, int mode, long size){ if(f->state!=OPEN){ f->state=ERR; return -1; } f->state=RDWR; switch(mode){ case _IOLBF: f->flags|=LINEBUF; case _IOFBF: if(buf==0){ buf=malloc(size); if(buf==0){ f->state=ERR; return -1; } f->flags|=BALLOC; } f->bufl=size; break; case _IONBF: buf=f->unbuf; f->bufl=0; break; } f->rp=f->wp=f->lp=f->buf=buf; f->state=RDWR; return 0;}int _IO_setvbuf(FILE *f){ static int isatty(int); if(f==stderr || (f==stdout && isatty(1))) return setvbuf(f, (char *)0, _IOLBF, BUFSIZ); else return setvbuf(f, (char *)0, _IOFBF, BUFSIZ);}static intisatty(int fd){ char buf[64]; if(fd2path(fd, buf, sizeof buf) != 0) return 0; /* might be /mnt/term/dev/cons */ return strlen(buf) >= 9 && strcmp(buf+strlen(buf)-9, "/dev/cons") == 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -