Gcc não aceita gets? [RESOLVIDO]

1. Gcc não aceita gets? [RESOLVIDO]

ian cléver sales fernandes
ianclever

(usa Arch Linux)

Enviado em 30/04/2013 - 13:42h

gente au mudei recentemente para o kubuntu 13.04, estou começando a desenvolver em c uso o ide codeblocks que está na versão 12, porém ele não reconhece a função gets mesmo adicionando a biblioteca strings.h, eu pensei que fosse erro de código, então eu testei um outro programa já revisado por mim e pelo professor e ele novamente não reconheceu o gets, pensei que fosse o codeblocks então tentei compilar com o próprio gcc mas ele também não reconheceu, da erro na compilação e diz que o gets está 'deprecated'. O que fazer?


  


2. MELHOR RESPOSTA

wellington
wellingtonsr

(usa Slackware)

Enviado em 30/04/2013 - 23:02h

Me parece uma restrição de segurança. Encontrei esse texto:

O gcc desencoraja o uso de gets . A própria man page de gets declara o seguinte em sua seção PROBLEMAS :

PROBLEMAS
Nunca use gets(). Porque é impossível saber, sem conhecer antecipada­
mente os dados, quantos caracteres gets() vai ler, e porque gets() vai
continuar a guardar caracteres ultrapassado o fim do 'buffer', ela é
extremamente perigosa de usar. Este comportamento tem sido utilizado
para quebrar a segurança de computadores. Use fgets() no seu lugar.




fonte: http://homepages.dcc.ufmg.br/~joaoreis/Site%20de%20tutoriais/c_int/es.htm

3. Re: Gcc não aceita gets? [RESOLVIDO]

ian cléver sales fernandes
ianclever

(usa Arch Linux)

Enviado em 30/04/2013 - 22:51h

up


4. Re: Gcc não aceita gets? [RESOLVIDO]

wellington
wellingtonsr

(usa Slackware)

Enviado em 30/04/2013 - 23:05h

Tem esse aqui também:

http://rberaldo.com.br/c-por-que-usar-fgets-em-vez-de-gets/


5. Re: Gcc não aceita gets? [RESOLVIDO]

ian cléver sales fernandes
ianclever

(usa Arch Linux)

Enviado em 30/04/2013 - 23:36h

wellingtonsr escreveu:

Me parece uma restrição de segurança. Encontrei esse texto:

O gcc desencoraja o uso de gets . A própria man page de gets declara o seguinte em sua seção PROBLEMAS :

PROBLEMAS
Nunca use gets(). Porque é impossível saber, sem conhecer antecipada­
mente os dados, quantos caracteres gets() vai ler, e porque gets() vai
continuar a guardar caracteres ultrapassado o fim do 'buffer', ela é
extremamente perigosa de usar. Este comportamento tem sido utilizado
para quebrar a segurança de computadores. Use fgets() no seu lugar.




fonte: http://homepages.dcc.ufmg.br/~joaoreis/Site%20de%20tutoriais/c_int/es.htm


hum.. sendo assim pare que na nova versão ele foi abolido, seja por que desenvolve o gcc ou pela canonical, se fosse bug ficaria irritado, mas se é para segurança sou a favor, obrigado.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts