Exibindo resultados 1 até 1 de 1

Tópico: fclose() blues

  1. #1
    Desde
    Jul 2004
    Posts
    93
    Peso da Avaliação
    10

    fclose() blues

    Acabei de corrigir um erro num aplicativo em que ando trabalhando nas horas vagas
    que confesso foi erro meu, mas teria encontrado a falha mais rápido se o S.O. ajudasse:

    O cenário é basicamente esse:

    Linux 2.4.26 (sim eu gosto dessa versão)

    O aplicativo precisa ler um arquivo de configuração, esse arquivo é lido e inflado
    caso necessário se encontrada alguma marcação de digamos "include". O "gênio" aqui faz
    tudo mas no final do processamento do .conf fecha o descritor de arquivo uma vez e depois
    outra vez.

    O problema do problema:

    O S.O. não retorna imediatamente "Segmentation Fault" mas retorna
    quando chamo apenas uma vez statvfs(), em face disso substituí a
    chamada à statvfs() por statfs() e pasmem: passou tranquilo.

    Lembrando se chamasse mais de uma vez statvfs() o erro não se
    manifestava.

    Mas mesmo passando (com statfs()), retornava a "Segmentation Fault" quando tentava
    abrir um novo descritor de arquivo.

    Foi penoso entender o erro imaginem isso tudo separado em uma infinidade de módulos,
    statvfs() estava lá na conchinchina em relação ao parsing do conf por exemplo...

    Minha opinão:

    Acho que fclose() deveria causar a falha de segmentação imediatamente
    assim seria mais fácil detectar e corrigir um bug no ponto certo, fico
    imaginando quantos bugs em aplicativos maiores são corrigidos nos
    pontos errados devido essas coisas que o S.O deixa passar...

    Fora que abre margem para inserção de novos bugs, porque no intuito de
    tentar resolver um erro exotérico desses o desenvolvedor pode acabar
    refazendo muitas partes do aplicativo à toa.

    Daí talvez se explique a infinidade de Patches que não corrigem nada e só
    pioram a situação.
    Última edição por void_brain_void : 10/11/2009 às 10:39 Motivo: "herros de portugueis"

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Regras de envio

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •