因此,讀取cl文件的目的是將文件融入到程序對象中,以便之後發送到設備上執行。
/* Read program file and place content into buffer */
FILE *program_handle;
size_t program_size;
char *program_buffer;
program_handle = fopen(PROGRAM_FILE, "r");
if(program_handle == NULL) {
perror("Couldn't find the program file");
exit(1);
}
fseek(program_handle, 0, SEEK_END);
program_size = ftell(program_handle);
rewind(program_handle);
program_buffer = (char*)malloc(program_size + 1);
program_buffer[program_size] = '\0';
fread(program_buffer, sizeof(char), program_size, program_handle);
fclose(program_handle);
通過上面的代碼,將cl文件讀取到了program_buffer中,然後調用clCreateProgramWithSource來生成所需的程序對象。
注意:在創建完程序對象後,要記得釋放前面的program_buffer.