FILE* f= fopen(fichier,"rb"); if(!f)return false; else return true;
Si le fichier n'existe pas, il est crée, donc ça ne teste pas s'il existait déjà. La seule manière de faire, c'est de s'adresser au systeme de fichier.
sur systemes UNIX (qui se conforme donc au standard POSIX), on peut faire qqchose comme ca : (en C, non testé)
#include <sys/stat.h> #include <sys/types.h> #include <stdio.h>
void main(int argc,char** argv) { struct stat stfile; if(stat( argv[1], &stfile) == -1) { fprintf(stderr,"acces refusé à %s", argv[1]) } if( (stfile.st_mode & S_IFMT) == S_IFREG) /* test pour un fichier régulier */ { printf("le fichier regulier %s existe",argv[1]); } }
je pense que errno doit etre positionné, on doit pouvoir afficher un diagnostic complementaire avec perror.
|