APUE 5.1实现

#include <stdio.h>
#include <stdlib.h>

void setbuf_test(FILE *fp, char *buf)
{
if (buf == NULL || fp == stderr)
{
if (setvbuf(fp, buf, _IONBF, BUFSIZ) != 0)
{
printf("setvbuf error when nobuf\n");
exit(-1);
}
printf("no buf \n");
}
else
{
if (fp == stdin || fp == stdout)
{
if (setvbuf(fp, buf, _IOLBF, BUFSIZ) != 0)
{
printf("setvbuf error in linebuf\n");
}
printf("line buf\n");
}
else
{
if (setvbuf(fp, buf, _IOFBF, BUFSIZ) != 0)
{
printf("setvbuf error in fullbuf\n");
}
printf("full buf\n");
}
}
}

posted @ 2017-04-20 21:38  DragonYo  阅读(160)  评论(0编辑  收藏  举报