2010-04-30 2 views
1

Мы работаем над домашней работой по программированию CELL для колледжа, и их реакция на ответ на наши вопросы носит медленный характер, подумал, что я могу получить более быстрые ответы здесь.ФАЙЛ * вопрос PPU код стороны

У меня есть код на стороне PPU, который пытается открыть файл, переданный через char* argv[], однако это не работает, он не может выполнить назначение указателя, я получаю NULL.

Теперь моя первая идея заключалась в том, что файл не находится в правильном каталоге, и я копировал его в любом возможном и логичном месте, моя вторая идея заключается в том, что, возможно, PPU хочет этот указатель в своей области LS, но я не могу выведите, если это ошибка или нет. Итак ...

Мой вопрос: что я делаю неправильно?

Я работаю с камерой SDK Fedora 7, с 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

Добавлен код по вашему запросу Нейл. – Cristina

ответ

1

Я получил его, если кто-нибудь иначе у вас были проблемы с этим, вы должны включить правила загрузки и загрузить лишние файлы, которые вы хотите использовать симулятором. :)

0

Точно, какая линия не работает, и как?

Чтобы узнать, какая ошибка возвращается из fopen или других вызовов, просмотрите errno.

Кроме того, она не должна вызывать эту проблему, но вам не нужна строка:

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

Эта память будет просто утечка ...

Смежные вопросы