J'ai essayé de rediriger la sortie vers un fichier et de lire le fichier au lieu de stdin en utilisant une fonction, mais il ne semble pas fonctionner comme lorsque je redirige dans un fichier et vérifier pour voir si un fichier a été créé avec la sortie il n'y a rien là. Quel pourrait être le problème avec cette fonction.rediriger stdout vers fichier - dans C
/* Redirect a standard I/O file descriptor to a file
* Arguments: filename the file to/from which the standard I/O file
* descriptor should be redirected
* flags indicates whether the file should be opened for reading
* or writing
* destfd the standard I/O file descriptor which shall be
* redirected
* Returns: -1 on error, else destfd
*/
int redirect(char *filename, int flags, int destfd){
int ret;
if(flags == 0){
destfd = open(filename,O_RDONLY);
if (destfd < 0){
return -1;
}
ret = dup2(0,destfd);
if(ret < 0){
return -1;
}
close(destfd);
}
if(flags == 1){
destfd = open(filename,O_APPEND|O_WRONLY);
if (destfd < 0){
return -1;
}
ret = dup2(destfd,1);
if(ret < 0){
return -1;
}
close(destfd);
}
return destfd;
}
pourquoi est 'destfd' un argument à la fonction? –