#include "GPUBaseTool.h" // 获取文件大小 extern "C" size_t getfsize(FILE* fp) { fseek(fp, 0L, SEEK_END); size_t size = ftell(fp); fseek(fp, 0L, SEEK_SET); return size; } extern "C" unsigned char* loadBinFromPath(char* binPath, size_t* binpath_len) { FILE* fd = fopen(binPath, "rb"); if (NULL == fd) { perror("Failed to open file"); return NULL; } size_t f_len = getfsize(fd); *binpath_len = f_len; unsigned char* buffer = (unsigned char*)malloc(f_len * sizeof(unsigned char)); if (buffer == NULL) { perror("Failed to allocate memory"); fclose(fd); return NULL; } size_t fread_count = fread(buffer, 1, f_len, fd); fclose(fd); if (fread_count != f_len) { releaseVoidArray(buffer); return NULL; } return buffer; } extern "C" void writeComplexDataBinFile(char* dataPath, size_t datalen, cuComplex* data) { FILE* pd = fopen(dataPath, "w"); double* tempdata = (double*)malloc(datalen * 2 * sizeof(double)); for (long i = 0; i < datalen; i++) { tempdata[i * 2 + 0] = data[i].x; tempdata[i * 2 + 1] = data[i].y; } fwrite(tempdata, sizeof(double), datalen * 2, pd); fclose(pd); }