Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Programmirovanie_pod_PSP_na_C__RUS.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.73 Mб
Скачать

Считывание всего файла, глава 4

Четвертая часть учебных материалов, размещенных harleyg на форуме PSP-Programming.com (первоначально опубликованные под заголовком «Общий C код»).

Далее выведем на экран содержание буфера/файла:

printf("%s\\n", buffer);

Данный оператор позволяет вывести буфер на экран. Если вы чего-то не понимаете, посмотрите предыдущие главы, либо другие учебные руководства по Си. Затем освобождаем выделяемую ранее память:

free(buffer);

Функция free используется для освобождения памяти, которую мы выделяли. Требуется один параметр, переменная, для этой операции. И в завершении поток возвращает ноль, что говорит об успешном выполнении задач до этого момента. А также символизирует окончание основной функции:

     sceKernelSleepThread();      return 0; }

И наконец, закрывающейся скобкой завершаем основную функцию. Ваш конечный код должен быть выглядеть так:

#include <pspkernel.h> #include <pspdebug.h> #include <stdio.h> #include <stdlib.h>

#define printf pspDebugScreenPrintf

/*Здесь должен быть обратный вызов. */

int main (void) {      pspDebugScreenInit();      SetupCallbacks();

     FILE * pFile;      long lSize;      char * buffer;

     pFile = fopen ( "myfile.txt" , "rb" );

     if (pFile==NULL) sceKernelExitGame();

     fseek (pFile , 0 , SEEK_END);      lSize = ftell (pFile);      rewind (pFile);

     buffer = (char*) malloc (lSize);

     if (buffer == NULL) sceKernelExitGame();

     fread (buffer,1,lSize,pFile);

     fclose (pFile);

     printf("%s\\n", buffer);

     free (buffer);

     sceKernelSleepThread();      return 0; }

Остался последний шаг — Makefile, но об этом в следующей, заключительной, главе…

Считывание всего файла, глава 5

Третья часть учебных материалов, размещенных harleyg на форуме PSP-Programming.com (первоначально опубликованные под заголовком «Общий C код»).

Вам необходим стандартный Makefile (поместите его в новый текстовый файл, названный «Makefile» без расширения):

TARGET = file1 OBJS = main.o

CFLAGS = -O2 -G0 -Wall CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti ASFLAGS = $(CFLAGS)

EXTRA_TARGETS = EBOOT.PBP PSP_EBOOT_TITLE = File Input Tutorial 1

PSPSDK=$(shell psp-config —pspsdk-path) include $(PSPSDK)/lib/build.mak

После этого напечатайте «make» в CYGWIN, и все установлено. За исключением одного момента. Вам нужен текстовый файл. Поэтому откройте блокнот и что-нибудь напечатайте, далее сохраните как «myfile.txt» (без кавычек) и поместите в каталог EBOOT на ваш PSP. Поздравляем, вы только что прочитали файл в Си. Теперь вы можете использовать навыки для чтения в настройках вашей программы и иметь внешние данные. Это может быть полезно для создания программ, необходимых для пользовательской конфигурации. Вы можете изменить конфигурацию без перекомпилирования файла! Скоро появятся новые уроки по «Файловому вводу-выводу», ждите более усовершенствованных тем и методов.

Не забудьте подписаться на RSS нашего сайта (или хотя бы занести сайт в закладки в браузере), чтобы быть в курсе и не пропустить обновления нашего курса.

Если вам понравились эти уроки и у вас есть лишняя пара баксов, вы можете отблагодарить автора или соавторов курса Или, если у вас есть свой веб-сайт, разместите ссылку на этот урок.