J'utilise popen pour exécuter une commande sous Linux, puis 4 process wile utilise la même sortie. Je suis en train de dupliquer le descripteur de fichier pour le passer à chaque processus. voici mon code:Descripteur de fichier en double après
FILE* file_source = (FILE*) popen(source_command, "r");
int fd = fileno(file_source);
fdatasync(fd);
int dest_fd[4], y, total = 4;
for (y = 0; y < total; y++) {
dest_fd[y] = dup(fd);
}
en fait, si ensemble total à 1 il fin de travail, après avoir changé total = 4, il ne fonctionne plus. cette réponse est trop proche de ce que je dois: link
Est-ce que dup() renvoie -1? Avez-vous essayé de vérifier l'errno? – Vereb
Que voulez-vous dire par «ça ne marche plus»? Je suppose que vos lectures échouent, plutôt que "dup" échouer – Hasturkun