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");        }    }}

原创粉丝点击