VxWorks里怎样load一个文件到内存? 这个文件可以是在SD、USB、ATA这类的存储设备,也可以通过ftp网络下载;

下面是相关的实现代码,分享给大家:


STATUS ldToMem
    (
    char * fileName
    )
    {
        UINT8 * pData;
        FILE *  fp;
        UINT32  FileSize;

        if (NULL == (fp = fopen(fileName,"rb")))
        {
            printf("open file failure\n");
            return ERROR;
        }

#if FALSE
        pfile = fopen("/sd0:0/fileName","rb");
#endif

        fseek (fp, 0, SEEK_END);
        FileSize = (UINT32) ftell (fp);
        fseek (fp, 0, SEEK_SET);

        if ((pData = malloc(FileSize)) == NULL)
        {
            printf("malloc failure\n");
            return ERROR;
        }

        if (fread (pData, 1, FileSize, fp) != FileSize)
        {
            printf("malloc failure\n");
            free(pData);
            return ERROR;
        }

        printf("ldToMem OK pointer @ 0xx FileSize %d\n",pData, FileSize);
}