Salut!

Supposons que l'on veuille déléguer à une fonction la tâche d'ouverture d'un fichier avec toutes les vérifications qui vont avec:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
FILE* f(char* path){
...
FILE* file=fopen(path,"r");
...
return file;
};
1)Est-ce "file" se comportera comme n'importe quelle variable locale et donc le renvoyer impliquera un comportement indéterminé?
2)De plus est-ce qu'un fichier ouvert dans une fonction le restera à la sortie de la fonction?

Si la réponse à 1) est oui alors est-ce que:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
FILE** file=malloc(sizeof(*file));
*file=fopen(path,"r");
...
return file;
est correct et est-ce que le fichier restera toujours ouvert en dehors de la fonction?

Merci de vos réponses.