viva pessoal do vol,
Então é o seguinte:
Eu estava meio esquecido das funções básicas de manipulação de ficheiros em C e precisava fazer um programa que se servisse dessas funções, por isso decidi fazer alguns exemplos básicos (pensava eu) que se servissem dessas funções.
E comecei a fazer então alguns programas simples que me davam o tamanho de um ficheiro, copiavam um ficheiro para outro, etc..(É verdade que nenhum deles tem utilidade real, mas não era esse o objectivo, para já, pois a razão era como disse relembrar a uso destas funções).
eu baseei os meus pequenos programas na hipótese de que o End Of File só apareceria no fim do ficheiro, mas parece que não é bem assim porque em alguns casos a cópia de ficheiro não é concluida.
um dos exemplos que correu mal foi um ebook (pdf) que parou no caractér 2731, bem longe do fim do ficheiro, ora quando eu pedi para imprimir o caracter 2732 como inteiro encontrei o número -1, ou seja EOF (o que achei estranho visto o ficheiro ter 8.8 mb e existir em muitos caracters depois destes), o outro exemplo foi a cópia do próprio executável do ficheiro que vou postar a seguir
que parou no caracter 800 e quando tentei imprimir o caracter 801 como inteiro recebi novamente o número -1 (tendo o ficheiro 5400 bytes ou seja 5400 caracteres).
Ora, a minha dúvida é se o caracter EOF realmente só está presente no fim de um ficheiro ou se em alguns casos pode aparecer noutro local do ficheiro que não o fim. Visto tratar-se de um pdf e de um executável pensei tratar-se de referências a outros ficheiros que farão com que o EOF apareça em outros locais que não o fim do ficheiro.
vou deixar aqui o programa para darem uma olhadela gostaria de saber se pensam que a minha dúvida tem razão de ser ou se o programa simplesmente está mal escrito (o que é uma possibilidade bastante real)
[CODE]
#include <stdio.h>
int main(int argc, char **argv){
char c;
FILE *in_file, *out_file;
if(argc!=2){
printf(" Forma correcta de utilização:ntfilecopy PATHn");
return 1;
}
else{
if((in_file=fopen(argv[1], "r")) == NULL){
printf("Não foi possível abrir o ficheiro %sn", argv[1]);
return 2;
}
else{
out_file=fopen("out", "w+");
while((c=fgetc(in_file)) != EOF){
fputc(c, out_file);
}
fclose(in_file);
fclose(out_file);
return 0;
}
}
return 0;
}
[CODE]
Papagaiando o XFCE com temas e recursos
WhatsApp com Chamadas no Linux via Waydroid
XFCE - quase um Gnome ou Plasma mas muito mais leve
LXQT - funcional para máquinas pererecas e usuários menos exigentes
SNMP Scan no OCS Inventory só funciona com HTTPS corretamente configurado
Removendo jogos e bloatware do KDE no Gentoo
Gentoo: Sincronização com Git e Automação via Systemd
Instalação do tema Fluent GTK no Zorin OS
PKI na Prática: Criando CA e Certificado Wildcard (Automatizado)
GOG confirma suporte oficial ao sistema Linux: "o trabalho começo... (1)
Midia de instalação LM-21.3 não inicializa (14)
eu queria saber no lenovo slim, se tem como ver os mhz de memoria e tu... (3)









