[FUG-BR] RES: RES: C/C++

gethostbyname gethostbyname em gmail.com
Segunda Fevereiro 26 12:42:04 BRT 2007


A não ser que você queira escrever um driver ou ajudar no
desenvolvimento do kernel do FreeBSD, eu sugiro C++.

gethostbyname

Henrique Berenguel escreveu:
> Alguém conhece livro bom ou curso bom de c para unix?
>
> -----Mensagem original-----
> De: freebsd-bounces at fug.com.br [mailto:freebsd-bounces at fug.com.br] Em nome
> de Paulo Pires
> Enviada em: domingo, 25 de fevereiro de 2007 00:57
> Para: Lista Brasileira de Discussão sobre FreeBSD (FUG-BR)
> Assunto: Re: [FUG-BR] RES: C/C++
>
> On 2/25/07, gethostbyname <gethostbyname at gmail.com> wrote:
>   
>> Essa exigência não é apenas da linguagem C++:
>>
>> "*ISO/IEC 9899:1999 (E)        (c)ISO/IEC*
>>
>> *5.1.2.2.1 Program startup*
>> The function called at program startup is named main. The implementation
>> declares no prototype for this function. It shall be defined **with a
>> return type of int** and with no parameters:
>> *int *main(void) { /*...*/ }
>> or with two parameters (referred to here as argc and argv, though any
>> names may be used, as they are local to the function in which they are
>> declared):
>> *int *main(int argc, char *argv[]) { /*...*/ }
>> or equivalent [ver a Nota]; or in some other implementation-defined
>>     
> manner.
>   
>> *Nota*:
>> Thus, int can be replaced by a typedef name defined as int,or the type
>> of argv can be written as char ** argv, and so on."
>>     
>
> Eu não se se foi coisa da lista, mas aqui apareceu um monte de
> asteriscos (acho que você que usou negritos), fazendo parecer
> ponteiros; eu achei um PDF do padrão através do Google (talvez o mesmo
> que você achou, em
> <http://www.nirvani.net.nyud.net:8090/docs/ansi_c.pdf>), onde vi que
> eu não estava louco com um bando de ponteiros. :)
>
> Mas veja o ponto-e-vírgula antes de "or some other
> implementation-defined manner".  Visualmente, acho que outra arrumação
> poderia aumentar mais a clareza, mas o que entendo é que uma
> implementação "hosted" (isto é, aquela que executa em um sistema
> operacional) pode optar entre retornar int _ou_ "alguma outra maneira
> definida pela implementação".  Se optar por int, então deve aceitar
> int main(void){/*...*/} *e* int main(int argc, char *argv[]){/*...*/}.
>  Mas que o fraseamento e a composição visual não ajudam na clareza,
> não ajudam mesmo.
>
>   



Mais detalhes sobre a lista de discussão freebsd