Как рассматривать данные RAM, как будто это был реальный файл?

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

Действительно ли это возможно?

Как сделать такую вещь?

6
задан Brian Tompsett - 汤莱恩 19 November 2015 в 22:06
поделиться

5 ответов

Вы можете сделать это в C, используя функцию popen () :

FILE *f = popen("program args", "w");
// write your output to f here using stdio
pclose(f);

Это возможно, если ваша внешняя программа считывает входные данные из stdin .

1
ответ дан 8 December 2019 в 03:38
поделиться

Почему бы просто не записать файл на диск? Если запись на диск слишком медленная, вы можете передать флаг FILE_ATTRIBUTE_TEMPORARY в CreateFile , чтобы сохранить данные в кеше (и избежать их записи на физическое устройство).

Иногда очевидные решения оказываются лучшими ...

16
ответ дан 8 December 2019 в 03:38
поделиться

Если это поддерживается вашей операционной системой (Unixoid системы и Windows поддерживают), вы можете попробовать использовать файлы с отображением памяти.

11
ответ дан 8 December 2019 в 03:38
поделиться

Вы можете использовать pipe ()

The pipe() function shall create a pipe and place two file descriptors,
one each into the arguments fildes[0] and fildes[1], that refer to  the
open  file  descriptions for the read and write ends of the pipe. Their
integer values shall be the two lowest available at  the  time  of  the
pipe() call. The O_NONBLOCK and FD_CLOEXEC flags shall be clear on both
file descriptors. (The fcntl() function can be used to set  both  these
flags.)
0
ответ дан 8 December 2019 в 03:38
поделиться

Да, это возможно. Вы можете передать свои данные другому приложению через межпроцессный коммуникационный механизм:

  1. В зависимости от вашей ОС, у вас есть разные варианты. Вы можете создать трубу, как уже упоминали другие авторы, поскольку во многих ОС есть трубы.
  2. Вы также можете использовать разделяемую память.
  3. Вы можете просто записать его в файл, а затем открыть этот файл в другом приложении.
  4. Во многих ОС есть и другие методы, которые можно использовать.

EDIT: MSDN перечисляет все механизмы IPC, доступные для Windows здесь.

0
ответ дан 8 December 2019 в 03:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: