标准 IO 测试 可以打开多少流

#include <stdio.h>
#include <string.h>
#include <errno.h>  //trerror(errno)
int main(int argc, const char *argv[])
{
#if 0     //错误输出
    FILE *fp =NULL;
    fp = fopen("./test.txt", "r");
    if(fp == NULL)
    {
        //puts("fopen fail");
        perror("fopen fail"); //打印错误信息
        printf("fail fopen -----> %s
",strerror(errno));//打印错误信息,通过错误号查看错误信息
        printf("%d
",errno);//查看错误信息,错误号
        return -1;
    }
    fclose(fp);//关闭文件
#endif

    FILE *f = NULL;
    int i=0;
    puts("AAAAA-----AAAAA");
    fclose(stdin);     //关闭标准输入流
    fclose(stderr);    //关闭标准错误流
    //fclose(stdout);  //关闭标准输出,终端也就不会输出内容了
    while(1)
    {
        if((f = fopen("./tt.txt","r")) ==NULL)
        {
            perror("fail ");
            break;
        }
        else
            i++;
    }
    printf("max %d
",i);
    return 0;
}

通过测试可以看出,最多可以打开1024个流

原文地址:https://www.cnblogs.com/electronic/p/10908616.html