see i have a situation over here. See in my code, which you can see below, everything works fine until the assignement to the variable "fd" of 'int' type. Even though fd != -1 it does not enter the else statement. Can anyone explain me why and maybe fix it?
int mostra(char *nomeFicheiro) //Mostra o conteúdo dum ficheiro; Retorna 1 com sucesso, 0 com erro
{
char aux[4000];
int cont = 0, i = 0, resultado = 2;
int fd = open(nomeFicheiro, O_RDONLY); //abre o ficheiro 'nomeFicheiro' em modo RDONLY no descritor fd
printf("fd = %d\n\n", fd);
if (fd == -1)
{
resultado = 0;
printf("resultado = %d\n", resultado);
}
else
{
//o programa não entra aqui, tudo para cima funciona, mas não entra neste else
printf("b");
read(fd, aux, sizeof(aux));
printf("c");
int teste = conta(nomeFicheiro);
while (aux[cont] != EOF || i <= teste)
{
if (aux[cont] == '\n') {
printf("%d", i); i++;
}
}
printf("d");
write(1, aux, cont);
printf("e");
resultado = 1;
}
close(fd);
printf("after close, resultado = %d\n\n", resultado);
return resultado;
}
Aucun commentaire:
Enregistrer un commentaire