shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] EOF


From: Victor Pereira
Subject: Re: [shell-script] EOF
Date: Wed, 17 Apr 2002 10:23:51 -0300

Olá, realmente sua explicação está perfeita.. mas derrepente não tenha
esclarecido o problema do nosso amigo.
Marcelo de uma olhada no stdio.h e veja o valor do EOF definido no seu
ambiente de desenvolvimento.
Ela tem de ser definida como um valor != 0 , *NORMALMENTE* como -1. Isso
claro depende do sistema operacional que se está utilizando.

SE olharmos o exemplo:
char c;
while((c = getchar()) != EOF)...

O código não irá funcionar, pois normalmente o char é do tipo unsigned logo
não pegará numeros negativos.

[]s
VP
----- Original Message -----
From: <address@hidden>
To: <address@hidden>
Sent: Wednesday, April 17, 2002 9:16 AM
Subject: Re: [shell-script] EOF


>
> Olá pessoal.
>
>      Como instrutor do Curso de "C-Interfaces para Unix" aqui no banco,
> gostaria de esclarecer a pergunta e comentar a resposta do nosso
> companheiro Victor.
>
>      Em ambientes UNIX não existe um código específico para fim de arquivo
> (EOF), nem um caractere indicativo de final de arquivo gravado no arquivo,
> sendo que o sistema operacional controla o fim do arquivo baseado na
> informação do tamanho do arquivo armazenado no i-node correspondente ao
> arquivo.
>
>      A função 'read' implementada no kernel, única rotina utilizada por
> todos os aplicativos e comandos para leitura de arquivos do file system,
> também não retorna erro caso se tente ler além do arquivo, retornando 0
> como sendo a quantidade de bytes lidos. A rotina irá retornar -1 somente
em
> caso de erro de leitura no arquivo especificado.
>
>      Como a função 'read' é muito crua para a maioria das necessidades,
> pois ela somente lê bytes, existem as funções da biblioteca padrão ANSI C
> que realizam uma entrada de dados mais inteligente e amigável. No caso da
> função 'fread', que realiza leitura de 'registros' por exemplo, retorna
> zero como a quantidade de registros lidos  caso se tente ler além do final
> do arquivo.
>
>      A função 'fgets' que realiza a leitura de linhas de um arquivo, por
> sua vez irá retornar um ponteiro nulo caso se tente ler além do fim do
> arquivo.
>
>      Finalmente temos a função 'fgetc' para a leitura de bytes de um
> arquivo. Essa sim, é a única função que irá retornar -1 em caso de
> tentativa de leitura além do final do arquivo.
>
>      Abraços a todos da lista
>
> José Augusto Martins Nieviadonski
> Analista de Suporte Consultor
> HSBC Bank Brasil S.A.
> address@hidden
>
>
>
>
>
>
>
>
>
>
>
>
>  Enviado Por : "Victor Pereira" <address@hidden> - 16/04/02 19:39
>         Responder a shell-script
>
>  Para:  <address@hidden>
>  cc:    (cco: Jose NIEVIADONSKI/HBBR/HSBC)
>  Assunto: Re: [shell-script] EOF
>
>
> -1
> ----- Original Message -----
> From: "Marcelo Kwecko" <address@hidden>
> To: <address@hidden>
> Sent: Monday, April 15, 2002 10:56 AM
> Subject: [shell-script] EOF
>
>
> >
> >  Alguem sabe o codigo do EOF. valeu...
> >
> >
> > Sair da lista: address@hidden
> > Banco Dados:   http://br.groups.yahoo.com/group/shell-script/messages
> >
> > Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
> http://br.yahoo.com/info/utos.html
> >
> >
>
>
> Sair da lista: address@hidden
> Banco Dados:   http://br.groups.yahoo.com/group/shell-script/messages
>
> Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
> http://br.yahoo.com/info/utos.html
>
>
>
>
>
>
>
>
> This message and any attachments are confidential to the ordinary user of
> the e-mail address to which it was addressed and may also be privileged.
If
> you are not the adressee you may not copy, forward, disclose or use any
> part of the message or its attachments and if you have received this
> message in error, please notify the sender immediately by return e-mail
and
> delete it from your system.
> Internet communications cannot be guaranteed to be secure or error-free as
> information could be intercepted, corrupted, lost, arrive late or contain
> viruses. The sender therefore does not accept liability for any errors or
> omissions in the context of this message which arise as a result of
> Internet transmission.
>
>
> Sair da lista: address@hidden
> Banco Dados:   http://br.groups.yahoo.com/group/shell-script/messages
>
> Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
http://br.yahoo.com/info/utos.html
>
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]