MyTetra Share
Делитесь знаниями!
Функция fmemopen() - открытие набора байт как файла в памяти с получением файлового дескриптора
Время создания: 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;

}

эта эмулирующая функция просто создает временный файл на диске, и возвращает его дескриптор.

Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования