Bonjour,

je voudrais savoir s'il est possible de rediriger les sorties vers une zone de mémoire ( une chaine ).

J'ai utilisé cette portion de code pour rediriger vers un fichier. Comment la modifier pour obtenir la redirection vers la mémoire ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if (elems[z][0]=='>') {
			/* XXX ouvre le fichier destination */
			int file = open(&elems[z][1], O_WRONLY | O_CREAT | O_TRUNC, 0644);
			if (file==-1) { 
				printf("ne peut pas créer le fichier \"%s\" (%s)\n",
					&elems[z][1],strerror(errno));
				exit(1);
			}
 
			/* XXX redirige la sortie standard sur file */
			close(1);
			dup2(file,1);
 
			/* XXX supprime le dernier argument */
			elems[z] = NULL;
		}
PS : Je ne suis pas très calé en C, soyez patient, parlez-moi avec des mots compréhensibles par un individu normal ...