Página 1 de 2 12 ÚltimoÚltimo
+ Responder ao Tópico



  1. #1
    Qual a melhor forma de testar se um arquivo exite em C? Eu pensei em abrir o arquivo com fopen() se der erro é por que o arquivo não existe. Mas isso me parece meio burro, ja que eu não vou utilizar o arquivo pra que abrir então!

    Qual a melhor forma de testar se o arquivo existe, digo "melhor forma" em termos de desempenho.

    fopen() e fstat() me parecem que fazem mais coisas do simple mais enxuta!

    Existe uma função expecifica para testar se um arquivo existe em C? se não qual a melhor forma de testar então?

  2. fopen e fstat abrem os arquivos, logo, esqueça-os. Você pode utilizar access() ou stat() assim:

    Código :
    #include <sys/stat.h>
     
    int fileExists(char *cpfileName)
    {
        struct stat stStat;
        int errcode = stat (cpfileName, &stStat);
        if (errcode == ENOENT)
            return 0; /* nao existe */
        return 1; /* existe */
    }

    ou...

    Código :
    #include <unistd.h>
     
    int fileExists(char *cpfileName)
    {
        int errcode = access(cpfileName, F_OK);
        if (errcode == ENOENT)
            return 0; /* nao existe */
        return 1; /* existe */
    }

    ps: olhe as manpages das funções, você pode verificar as permissões também. Outra coisa, a variavel errno já é setada por padrão quando ocorrer um erro.

    http://www.fifi.org/cgi-bin/man2html...n2/access.2.gz
    http://www.fifi.org/cgi-bin/man2html...man2/stat.2.gz

    Abraços



  3. Podis ser assim tbm:

    Código :
    int main(int argc,char *argv[]){
     
    FILE *fp;
    fp=fopen("/caminho/pro/arquivo.ext","r");
    if(fp){
        printf("Aeee...existe\n");
        fclose(fp);
    }else{
        printf("Game Over\nTry again");
    }
    return(0);
    }

  4. #4
    Simples assim...
    man 3 stat



  5. Citação Postado originalmente por Simples assim...
    man 3 stat
    Citação Postado originalmente por Slackware 10
    [09:04:08@sdm]$ man 3 stat
    Não existe a entrada stat na secção 3
    :cry: soh aki deu isso???






Tópicos Similares

  1. Como saber se um campo tem dados?
    Por denilson_rocha no fórum Servidores de Rede
    Respostas: 6
    Último Post: 07-10-2005, 14:10
  2. PHP: como saber se o arquivo existe
    Por whinston no fórum Linguagens de Programação
    Respostas: 0
    Último Post: 10-06-2005, 10:28
  3. Como verificar se um host esta ativo
    Por ruyneto no fórum Servidores de Rede
    Respostas: 3
    Último Post: 12-11-2004, 09:28
  4. setar owner especifico qdo cria-se um arquivo em share linux
    Por andrefs no fórum Servidores de Rede
    Respostas: 0
    Último Post: 04-08-2004, 08:32
  5. Como verificar se algum arquivo foi alterado no servidor
    Por Vilmar/RO no fórum Servidores de Rede
    Respostas: 2
    Último Post: 05-04-2004, 15:27

Visite: BR-Linux ·  VivaOLinux ·  Dicas-L