FILE * выдать код стороны PPU - PullRequest
1 голос
/ 30 апреля 2010

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

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

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

У меня вопрос, что я делаю не так?

Я работаю с ячейкой Fedora 7 SDK с 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]);
 //.......

}

Спасибо за помощь.

Ответы [ 2 ]

1 голос
/ 30 апреля 2010

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

0 голосов
/ 30 апреля 2010

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...