언어/C언어

임의의 파일을 동적으로 버퍼에 저장

강품바 2013. 1. 11. 09:15

출처가...어디더라.... 찾으면 올리겠음..

크기가 항상 다른 파일을 불러다가 버퍼에 저장하는 방법


FILE * warcFile;

char * buffer;

long lSize;


 warcFile = fopen( argv[1] , "rb" );

    if (warcFile==NULL) 

    {

        fputs("File error",stderr);

        exit (1);

    }


    // 파일의 크기를 ISize 에 저장한다. 

    fseek(warcFile , 0 , SEEK_END);

    lSize = ftell (warcFile);

    rewind(warcFile);


    // 전체 파일의 내용을 받을 수 있을 정도의 크기로 메모리를 할당한다. 

    buffer = (char*)malloc(sizeof(char)*lSize);

    if (buffer == NULL)

    {

        fputs("Memory error",stderr);

        exit (2);

    }


    // 그 파일의 내용을 버퍼에 저장한다. 

    result = fread(buffer,1,lSize,warcFile);

    if (result != lSize) 

    {

        fputs("Reading error",stderr);

        exit(3);

    }