UNIX环境高级编程习题 5.1
2009-08-24 22:03
411 查看
#include <stdio.h>
#include <stdlib.h>
void mysetbuf(FILE *__restrict fp, char *__restrict buf);
int main()
{
FILE *fp;
char buf[BUFSIZ];
if ((fp = fopen("test.mayjie","a+")) == NULL)
{
printf("fopen error!/n");
exit(-1);
}
mysetbuf(fp,buf);
mysetbuf(stdin,buf);
mysetbuf(stdout,buf);
mysetbuf(stderr,buf);
fclose(fp);
return 0;
}
void mysetbuf(FILE *__restrict fp, char *__restrict buf)
{
if (buf == NULL)
{
if (setvbuf(fp,NULL,_IONBF,0) != 0) /* 无缓冲 */
{
printf("setvbuf error!/n");
exit(-1);
}
}
else
{
if (fp == stderr)
{
if (setvbuf(fp,NULL,_IONBF,0) != 0) /* 无缓冲 */
{
printf("setvbuf error!/n");
exit(-1);
}
}
else if (fp == stdin || fp == stdout)
{
if (setvbuf(fp,buf,_IOLBF,BUFSIZ) != 0) /* 行缓冲 */
{
printf("setvbuf error!/n");
exit(-1);
}
}
else
{
if (setvbuf(fp,buf,_IOFBF,BUFSIZ) != 0) /* 全缓冲 */
{
printf("setvbuf error!/n");
exit(-1);
}
}
}
}
#include <stdlib.h>
void mysetbuf(FILE *__restrict fp, char *__restrict buf);
int main()
{
FILE *fp;
char buf[BUFSIZ];
if ((fp = fopen("test.mayjie","a+")) == NULL)
{
printf("fopen error!/n");
exit(-1);
}
mysetbuf(fp,buf);
mysetbuf(stdin,buf);
mysetbuf(stdout,buf);
mysetbuf(stderr,buf);
fclose(fp);
return 0;
}
void mysetbuf(FILE *__restrict fp, char *__restrict buf)
{
if (buf == NULL)
{
if (setvbuf(fp,NULL,_IONBF,0) != 0) /* 无缓冲 */
{
printf("setvbuf error!/n");
exit(-1);
}
}
else
{
if (fp == stderr)
{
if (setvbuf(fp,NULL,_IONBF,0) != 0) /* 无缓冲 */
{
printf("setvbuf error!/n");
exit(-1);
}
}
else if (fp == stdin || fp == stdout)
{
if (setvbuf(fp,buf,_IOLBF,BUFSIZ) != 0) /* 行缓冲 */
{
printf("setvbuf error!/n");
exit(-1);
}
}
else
{
if (setvbuf(fp,buf,_IOFBF,BUFSIZ) != 0) /* 全缓冲 */
{
printf("setvbuf error!/n");
exit(-1);
}
}
}
}
相关文章推荐
- UNIX环境高级编程习题——第六章
- UNIX环境高级编程习题——第三章
- UNIX环境高级编程之第5章:标准I/O库-习题
- UNIX环境高级编程习题——第五章
- UNIX 环境高级编程习题3.2
- UNIX环境高级编程之第8章:进程控制-习题
- UNIX环境高级编程之第6章:系统数据文件和信息-习题
- UNIX环境高级编程习题——第四章
- unix环境高级编程第七章习题的一些拙见
- UNIX环境高级编程习题之第三章第二题
- UNIX环境高级编程之第4章:文件和目录-习题
- UNIX环境高级编程习题——第八章
- UNIX环境高级编程习题 4.11 myftw改造
- Unix环境高级编程 第三章习题答案
- UNIX环境高级编程习题——第二章
- UNIX环境高级编程之第4章:文件和文件夹-习题
- unix环境高级编程第五章习题的一些拙见
- UNIX环境高级编程习题——第七章
- UNIX环境高级编程习题——第一章
- UNIX环境高级编程———第三章习题