|
|||||||
Время создания: 03.07.2009 13:52
Текстовые метки: c, функция, открыть файл, память
Раздел: Компьютер - Программирование - Язык C (Си)
Запись: xintrea/mytetra_syncro/master/base/0000001089/text.html на raw.github.com
|
|||||||
|
|||||||
Функция fmemopen() позволяет открыть набор байт как файл, и получить обычный файловый дескриптор, что позволяет работать с набором байт как с файлом обычными файловыми функциями чтения и записи. Пример использования #include <stdio.h> #include <string.h> static char buffer[] = "foobar"; int main (void) { int ch; FILE *stream; stream = fmemopen(buffer, strlen (buffer), "r"); if (stream == NULL) /* handle error */; while ((ch = fgetc(stream)) != EOF) printf("Got %c\n", ch); fclose(stream); return (0); } Внимание! Реализация этой функции сделана только в GNU C. В других версиях C этой реализации нет. Для эмуляции данной функции можно использовать следующий код FILE *fmemopen (void *buf, size_t size, const char *opentype) { FILE *f; assert(strcmp(opentype, "r") == 0); f = tmpfile(); fwrite(buf, 1, size, f); rewind(f); return f; } эта эмулирующая функция просто создает временный файл на диске, и возвращает его дескриптор. |
|||||||
Так же в этом разделе:
|
|||||||
![]() |
|||||||
|
|||||||
|