Question

J'ai donc des données temporaires dans mon programme (en RAM). Je veux faire en quelque sorte, il semble que c'est un fichier (par exemple pour l'envoyer dans un autre programme qui prend un lien de fichier comme argument)?

Est-il possible?

Comment faire une telle chose?

Était-ce utile?

La solution

Vous pouvez le faire en C en utilisant la fonction popen():

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

Ceci est possible si votre programme externe lit son entrée à partir stdin.

Autres conseils

Pourquoi pas écrire simplement le fichier sur le disque? Si l'écriture sur le disque est trop lent, vous pouvez passer le drapeau FILE_ATTRIBUTE_TEMPORARY

Vous pouvez utiliser la conduite ()

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.)
scroll top