Probl. mit Sambazugriff?

Gast #417256
Lesenswert?

Hallo,

folgende Situation: Ein Linuxrechner mit Samba gibt ein Verzeichnis
frei, ein Windowsrechner greift lesend darauf zu. Der Windowsrechner
pollt nun ständig eine Datei, um anhand deren Inhalt etwas über den
Zustand einer Applikation auf dem Linuxrechner, die ihrerseits
gelegentlich in diese Datei schreibt, zu erfahren.

Ab und an kommt es nun dazu, dass die Windowsapplikation nicht den
richtigen Zustand liest, obwohl dieser wirklich durch die Datei
angezeigt wird. Windowsapp. in C#, Linuxapp in C++. Dateizugriff
erfolgt mit den üblichen Bordmitteln.

Welche Umstände können für dieses Verhalten ursächlich sein?

Vielen Dank schon mal für alle Anregungen.
Gast #417257
Lesenswert?

file caching... wenn du in die file am linux rechner schreibst darfst du
sofort einen flush danach machen.. dann sollte es auf die platte kommen
wenn linux nicht gerade meint, dass etwas wichtigeres auf die platte
raufmuss/runtermuss...

aber im prinzip sollte das mehr oder weniger sofort nach dem flush
richtig in der file liegen...

73
Gast #417258
Lesenswert?

Die Datei wird auf dem Linuxsystem sofort nach dem Schreibzugriff
geschlossen. Der Windowsrechner versucht es im übrigen wiederholt mit
relativ großen Pausen. Ich versteh es nicht, ein Testprogramm auch auf
dem Linuxsystem zeigt an, dass die Datei ordnungsgemäß den richtigen
Inhalt enthält.
Gast #417259
Lesenswert?

schliessen heisst nicht unbedingt wirklich schreiben !!!! es gibt unter
linux einen filecache und der kann dir da reinpfuschen.. mach noch
einen flush vor dem schliessen.. sicher ist sicher!!

und dann wäre da noch unter windows der filecache... wie man den
abdrehn kann..ka...

73
Gast #417260
Lesenswert?

Hi,

fstream.close enthält ein implizites flush. Auf tiefere Ebenen kommt
man mit fstream nicht. Darunterliegende Systemschichte, die
irgendwelche Puffer haben, kann man so ohnehin nicht beeinflussen...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren