Ich arbeite an C in meiner Universität, ich bin am Anfang arbeiten mit Puffern und diese Funktion so apolagize mein Mangel an Wissen, dass ich zeigen könnte . Ich muss dieses Projekt mit lseek(), write() und read() machen. Ich wollte eine Datei lesen, und jeden Buchstaben, den ich finde, würde ich in '?' Mein Code so weit ist:Problem beim Arbeiten mit Datei mit lseek() lesen() und schreiben()
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <fcntl.h>
int main() {
int fd = open("problema4file", O_RDWR);
int fptr = lseek(fd, (off_t)(-1), SEEK_END);
char buffer;
while(fptr!=-1){
read(fd, &buffer, 1);
char changeTo = '?';
if(buffer == 'a'){
write(fd, &changeTo,1);
}
fptr=lseek(fd, (off_t)(-2), SEEK_CUR);
}
close(fd);
}
Aber dies ist die erste geändert ‚a‘ (zuletzt, weil ich vom Ende beginnen) und nicht mehr. Es hört auf sich zu ändern. Ach und es ändert nicht das 'a', ändert den Brief danach, aber das hat mit den Pufferbewegungen zu tun oder? Ich könnte später darüber nachdenken .. Ich wollte nur wissen, warum das nicht die ganze Datei liest und alles ändert, es hört bei der ersten Feststellung auf.
Veröffentlichung den Text eher als ein Bild von Text nützlicher ist (Ausschneiden/Einfügen, Suchen) – chux
http://stackoverflow.com/questions/36185820/lseek-doesnt-do-what-its-supposed –
Eine Frage ist erforderlich, um den Code ** in ** die Frage selbst zu haben! – Olaf