我们正在为大学进行CELL编程的家庭作业,他们对我们问题的反馈反应有点慢,以为我可以在这里得到更快的答案。
我有一个PPU端代码试图打开通过char* argv[]
向下传递的文件,但是这不起作用它无法分配指针,我得到一个NULL。
现在我的第一个想法是文件不在正确的目录中并且我在每个可能的逻辑位置复制,我的第二个想法是PPU可能希望这个指针在其LS区域,但我无法推断如果那是错误的话。所以......
我的问题是我做错了什么?
我正在使用Fedora 7 SDK Cell,将Eclipse作为IDE。也许我的参数设置错误,因为他正确地得到了文件的名称。
请求代码:
images_t *read_bin_data(char *name)
{
FILE *file;
images_t *img;
uint32_t *buffer;
uint8_t buf;
unsigned long fileLen;
unsigned long i;
//Open file
file = (FILE*)malloc(sizeof(FILE));
file = fopen(name, "rb");
printf("[Debug]Opening file %s\n",name);
if (!file)
{
fprintf(stderr, "Unable to open file %s", name);
return NULL;
}
//.......
}
主要发布:
int main(int argc,char* argv[]) {
int i,img_width;
int modif_this[4] __attribute__ ((aligned(16))) = {1,2,3,4};
images_t *faces, *nonfaces;
spe_context_ptr_t ctxs[SPU_THREADS];
pthread_t threads[SPU_THREADS];
thread_arg_t arg[SPU_THREADS];
//intializare img_width
img_width = atoi(argv[1]);
printf("[Debug]Img size is %i\n",img_width);
faces = read_bin_data(argv[3]);
//.......
}
感谢您的帮助。
答案 0 :(得分:1)
我明白了,如果其他人遇到问题,您必须启用上传规则并上传您希望模拟器使用的额外文件。 :)
答案 1 :(得分:0)
究竟哪条线路出现故障,以及如何?
您应该查看errno
以查看fopen或其他来电返回的错误。
此外,它不应导致此问题,但您不需要该行:
file = (FILE*)malloc(sizeof(FILE));
那个记忆只会被泄露......