char x[3];
char buff, c;
x[0]='y';
int offset, i;
int fd;
fd = open("test1.txt", O_RDONLY);
if(fd==-1){ printf("Error on fopen."); exit(1); }
offset = lseek(fd, 1, SEEK_END);
printf("Size of file is: %d. \n", offset);
for(i=offset-1; i>=0; i--)
{
c = read(fd, &buff, 1);
printf("The character is: %c. \n", c);
}
close(fd);
En cours d'exécution cela me donne.L'utilisation de lseek() imprime des caractères répétés
Size of file is: 6.
The character is: .
The character is: .
The character is: .
The character is: .
The character is: .
The character is: .
Le fichier de test contient uniquement le mot "TEST". Je veux être en mesure d'imprimer le mot en arrière.
Vous avez oublié de revenir en arrière ou de rechercher le pointeur de fichier. Vous lisez de la fin du fichier. –
Eh bien pour une chose que vous imprimez la valeur de retour de 'read' qui n'est pas le caractère lu. Voir http://linux.die.net/man/2/read – missimer