apue 习题5.1 用setvbuf实现setbuf
来源:互联网 发布:淘宝海外代购 编辑:程序博客网 时间:2024/05/29 15:05
/* 用setvbuf实现setbuf */#include <stdio.h>#include <stdlib.h>#include "myheader.h"void mysetbuf(FILE *fp, char *buf){ if (buf == NULL) { if (setvbuf(fp, buf, _IONBF, BUFSIZ) != 0) { perror("setvbuf error!"); exit(-1); } printf("no buf\n"); } else { if (fp == stderr) { if (setvbuf(fp, buf, _IONBF, BUFSIZ) != 0) { perror("setvbuf error!"); exit(-1); } printf("no buf\n") ; }else if (fp == stdin || fp == stdout) { if (setvbuf(fp, buf, _IOLBF, BUFSIZ) != 0) { perror("setvbuf error!"); exit(-1); } printf("line buf\n"); } else { if (setvbuf(fp, buf, _IOFBF, BUFSIZ) != 0) { perror("setvbuf error!"); exit(-1); } printf("full buf\n"); } }}