Pular para o conteúdo

Fazer isso seria uma má pratica de programação ?

Responder tópico
  • Denunciar
  • Indicar

1. Fazer isso seria uma má pratica de programação ?

Enviado em 27/08/2013 - 20:06h

Boa noite, quando eu faço um programa que precisa pegar strings do usuario, eu uso a função fgets, eu uso desse jeito:
fgets(variavel, valor, stdin);

sei que essa função é para ler strings de arquivos de texto, mas eu uso para pegar strings do usuario, isso seria uma umá pratica de programação ?

Responder tópico

2. Re: Fazer isso seria uma má pratica de programação ?

Enviado em 27/08/2013 - 21:19h

Na verdade não. É até indicado no lugar de gets, que se tornou insegura.

3. Re: Fazer isso seria uma má pratica de programação ?

Enviado em 29/08/2013 - 02:30h

fgets() não é para ler dados de arquivos, mas sim dados de qualquer stream de entrada.

Qualquer fonte de dados -- seja ela um arquivo, um teclado, uma porta serial, um canal de comunicação por rede ou um mecanismo de obtenção de dados gerados por outro programa na mesma máquina -- poderia, em princípio, estar ligada a um stream de entrada. stdin é um caso particular de stream de entrada, que normalmente é associado ao teclado do terminal ou console no qual se dispara a execução do programa.

E uma correção à informação dada pelo colega, acima. A função gets() não "se tornou" insegura porque seu funcionamento nunca mudou desde que a função foi especificada. Ela já nasceu insegura. É o típico caso de uma implementação provisória e relapsa de uma função, feita rapidamente e para "quebrar um galho", e que acabou ficando permanente, porque todo mundo a adotou por conveniência, esquecendo que ela tinha uma severa restrição de aplicação -- e que é grave, porque o programa nem mesmo tem como verificar nem mesmo em tempo de execução, e muito menos no momento da compilação.

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder