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

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

Matheus Brito
kirito

(usa Slackware)

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 ?


  


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

Luis R. C. Silva
luisrcs

(usa Linux Mint)

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 ?

Paulo
paulo1205

(usa Ubuntu)

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.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts