2010-04-30 44 views
1

我們正在爲大學的CELL編程做作業,他們對我們問題的反饋反應有點慢,我想我可以在這裏得到一些更快的答案。FILE *問題PPU副代碼

我有一個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

發佈不起作用的代碼。 – 2010-04-30 08:56:15

+0

根據您的要求添加代碼Neil。 – Cristina 2010-04-30 09:09:58

回答

1

我得到了它,如果任何人否則有問題,您必須啓用上傳規則並上傳您希望模擬器使用的額外文件。 :)

0

究竟哪條線路故障,以及如何?

你應該看看errno來查看fopen或其他調用返回的錯誤。

而且,它不應該引起這個問題,但你並不需要行:

file = (FILE*)malloc(sizeof(FILE)); 

該內存只會被泄露......