Ich erstelle eine Datei in einem c wie folgt:node.js geöffnete Datei überschreibt vorhandene Datei
int fd;
fd = open(filename, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
if (fd == -1) {
return NULL;
}
lseek(fd, filesize + 1, SEEK_SET);
write(fd, "", 1);
lseek(fd, 0, SEEK_SET);
void* file_memory = mmap(0, filesize, PROT_WRITE, MAP_SHARED, fd, 0);
close(fd);
Also, wie gesagt, erstelle ich die Datei und füllen Sie ihn, bevor sie im Speicher abbildet.
Wenn ich an der Datei im Dateisystem aussehen es gibt mir 1026 Bytes Dateigröße (einfache ls -l aus der Datei)
Später habe ich die Datei von einem Knoten Anwendung einfach und klingen wie so zugreifen möchten:
Wenn diese Zeile ausgeführt wird, wird die Dateigröße auf 0 gesetzt (wieder ein einfaches ls -l).
Ich nehme an, dass die Datei neu erstellt wurde? Aber das sollte nicht passieren, da die Datei bereits existiert (gemäß dem Handbuch node.js).
Was passiert hier? Was mache ich falsch?