Reclamação que não entendi do compilador [RESOLVIDO]

13. Re: Reclamação que não entendi do compilador [RESOLVIDO]

Apprentice X
ApprenticeX

(usa FreeBSD)

Enviado em 12/01/2023 - 10:47h

Estou encerrando o tópico porque vai ficar confuso para outras pessoas que lerem isso, estudarem um código que já se iniciou completamente errado ao utilizar o w neste caso para abrir o arquivo!
Talvez o compilador, esteja dizendo exatamente isso: Seu código não faz sentido, testar um arquivo que acabou de ser criado!

Re-criar exemplos errados para entender e anotar, pq o código está errado desde o início da pergunta!
Anotar em minhas coisas um código errado no futuro será um CAOS entender o que anotei!
Motivo pelo qual estou fechando ele aqui e escolhendo a melhor resposta!

Penso que minha pergunta deixou de ser válida para estudos no momento em que descobri a incoêrencia do código!
Vou deixar pra tirar dúvidas em um código válido para tirar dúvidas!

Obrigado!


  


14. Re: Reclamação que não entendi do compilador

Buckminster
Buckminster

(usa Debian)

Enviado em 12/01/2023 - 21:01h

Acredito que não é um é um bug.
Tenta:
if(!Destiny == NULL)) {...} else
ou
if(Destiny == NULL)) {...} else

A macro NULL é definida por padrão em stdio.h como '\0'.
A condição !Destiny testa se o arquivo foi aberto com sucesso porque, no caso de um erro, a função fopen() retorna um ponteiro nulo (NULL).

Faz tempo que não programo em C, então é só um palpite puxado do fundo da memória.


________________________________________________
Always listen the Buck!


15. Re: Reclamação que não entendi do compilador [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 13/01/2023 - 19:33h

Agora quem não entendeu fui eu. Se o ponteiro do arquivo é nulo (porque deu algum erro ao abrir), como você espera poder escrever no arquivo?

Talvez seja melhor você explicar de novo o que quer fazer. Eu tinha entendido que você gostaria de preservar qualquer arquivo que já existisse, e escrever conteúdo novo caso o arquivo tenha sido criado pela primeira vez. Entretanto, pareceu-me que você rejeitou a minha sugestão de usar o flag x no momento da abertura, que faria justamente isso que eu tinha entendido que era seu desejo. No seu último código, você aparentemente está rejeitando fazer algo quando fopen() funciona, e quer escrever algo dentro do arquivo justamente quando a função não conseguiu abri-lo — e portanto não pode fazer nada mesmo, e é isso para que o compilador está chamando sua atenção —, e sem tentar abri-lo novamente.


... Então Jesus afirmou de novo: “(...) eu vim para que tenham vida, e a tenham plenamente.” (João 10:7-10)


16. Re: Reclamação que não entendi do compilador [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 13/01/2023 - 21:47h


paulo1205 escreveu:

Agora quem não entendeu fui eu. Se o ponteiro do arquivo é nulo (porque deu algum erro ao abrir), como você espera poder escrever no arquivo?

Talvez seja melhor você explicar de novo o que quer fazer. Eu tinha entendido que você gostaria de preservar qualquer arquivo que já existisse, e escrever conteúdo novo caso o arquivo tenha sido criado pela primeira vez. Entretanto, pareceu-me que você rejeitou a minha sugestão de usar o flag x no momento da abertura, que faria justamente isso que eu tinha entendido que era seu desejo. No seu último código, você aparentemente está rejeitando fazer algo quando fopen() funciona, e quer escrever algo dentro do arquivo justamente quando a função não conseguiu abri-lo — e portanto não pode fazer nada mesmo, e é isso para que o compilador está chamando sua atenção —, e sem tentar abri-lo novamente.


... Então Jesus afirmou de novo: “(...) eu vim para que tenham vida, e a tenham plenamente.” (João 10:7-10)


Tu está falando comigo ou com o autor do tópico?


________________________________________________
Always listen the Buck!


17. Re: Reclamação que não entendi do compilador

Paulo
paulo1205

(usa Ubuntu)

Enviado em 14/01/2023 - 03:20h

Buckminster escreveu:

Tu está falando comigo ou com o autor do tópico?


Com o OP. Eu nem tinha visto sua resposta quando comecei a escrever a minha.

Na verdade, não tinha reparado que tinha uma segunda página na discussão, e que o OP tinha inclusive dito que ia encerrar o assunto.


... Então Jesus afirmou de novo: “(...) eu vim para que tenham vida, e a tenham plenamente.” (João 10:7-10)


18. Re: Reclamação que não entendi do compilador [RESOLVIDO]

Apprentice X
ApprenticeX

(usa FreeBSD)

Enviado em 14/01/2023 - 14:37h

Buckminster escreveu:

Acredito que não é um é um bug.
Tenta:
if(!Destiny == NULL)) {...} else
ou
if(Destiny == NULL)) {...} else

A macro NULL é definida por padrão em stdio.h como '\0'.
A condição !Destiny testa se o arquivo foi aberto com sucesso porque, no caso de um erro, a função fopen() retorna um ponteiro nulo (NULL).

Bem lembrado mesmo! Muitas vezes esqueçemos coisas simples


19. Re: Reclamação que não entendi do compilador

Apprentice X
ApprenticeX

(usa FreeBSD)

Enviado em 14/01/2023 - 14:40h

paulo1205 escreveu: Agora quem não entendeu fui eu. Se o ponteiro do arquivo é nulo (porque deu algum erro ao abrir), como você espera poder escrever no arquivo?
Talvez seja melhor você explicar de novo o que quer fazer. Eu tinha entendido que você gostaria de preservar qualquer arquivo que já existisse, e escrever conteúdo novo caso o arquivo tenha sido criado pela primeira vez.
Você entendeu certo! Mas a pergunta começou errada, e percebi isso qdo vc falou sobre o w[/quote]

Entretanto, pareceu-me que você rejeitou a minha sugestão de usar o flag x no momento da abertura, que faria justamente isso que eu tinha entendido que era seu desejo.
Não rejeitei, montei um exemplo e entendi o que o x faz, inclusive anotei pra não esqueçer. Apenas achei que o código precisa ser feito corretamente!





01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts