Datei sperren?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Datei sperren?

Beitrag von AND51 »

Hallo!

Wie kann man eine Datei sperren, sodass kein anderer Prozess darauf zugreifen kann?
In CGI/Perl geht das mit Flock(), sofern das einer kennt.

MfG, AND51
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
uweb
Beiträge: 461
Registriert: 13.07.2005 08:39

Beitrag von uweb »

Das ist zwar kein 100%iger Schutz aber vielleicht reicht dir ja das Schreibgeschützt-Attribut ?

http://www.purebasic.fr/german/viewtopic.php?t=3299

2. Möglichkeit geht nur während Dein Programm läuft : Datei öffnen.

natürlich kann man auch tricksen.

z.B. über einen HardLink entweder auf eine leere Dummydatei oder eben die eigentliche Datendatei zeigen.
http://www.purebasic.fr/german/viewtopic.php?t=6276
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Ja, ich meine, während mein Programm läuft, möchte ich eine ini-Datei sperren, sodass kein anderes Programm dauarf zugreifen kann.

Fals jemand noch einen Tipp hat, kann er ja posten, aber ich glaube, ich löse das eigentliche Problem doch anders. Trotzdem danke!
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
uweb
Beiträge: 461
Registriert: 13.07.2005 08:39

Beitrag von uweb »

Hast Du schon so schnell alle drei Varianten ausprobiert oder habe ich die Frage doch falsch verstanden ?

Welche andere Lösung hast Du ?
Benutzeravatar
Karl
Beiträge: 520
Registriert: 21.07.2005 13:57
Wohnort: zu Hause

Beitrag von Karl »

Er möchte wohl exklusiven Zugriff, damit ihm kein anderer was dazwischen schreibt.

In Visual Basic ist das kein Problem.



Gruß Karl
The Kopyright Liberation Front also known as the justified ancients of Mumu!
PB 5.X
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

Es sollte eigentlich genügen, die datei einfach geöffnet zu lassen.
Benutzeravatar
Karl
Beiträge: 520
Registriert: 21.07.2005 13:57
Wohnort: zu Hause

Beitrag von Karl »

@Zaphod: Probiert und negativ. Er sperrt wohl nur beim Schreiben sprich schließen.

Gruß Karl
The Kopyright Liberation Front also known as the justified ancients of Mumu!
PB 5.X
Benutzeravatar
uweb
Beiträge: 461
Registriert: 13.07.2005 08:39

Beitrag von uweb »

Ja, das war ja mein 2. Vorschlag.

Eben so :

Code: Alles auswählen

If OpenWindow(0, 100, 100, 300, 100, "Test", #PB_Window_SystemMenu)
  If OpenFile(0, "server.ini")
  
    Repeat
      Event = WaitWindowEvent()
    Until Event = #PB_Event_CloseWindow
  
    CloseFile(0)
  EndIf
EndIf
Aber, vielleicht hat er ja noch eine bessere Methode mit anderen Vorteilen.


edit :
Er sperrt wohl nur beim Schreiben sprich schließen.
Vielleicht bin ich heute schwer von Begriff aber das habe ich nicht verstanden. Bei mir wird gesperrt.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Im Grunde hat Karl Recht:
> Er möchte wohl exklusiven Zugriff, damit ihm kein anderer was dazwischen schreibt.

Die Datei einfach geöfnet zu lassen, damit sie nicht gelöscht wird, das ist mir klar, dass man dann einfah die Datei geöffnet lassen kann.

Aber ich will sowas Ähnliches wie Flock() von CGI/Perl, damit kann man einstelen, dass andere Prozesse solange nicht drauf zugreifen dürfen, nur lesen dürfen etc. bis man mit flock() die Datei wieder freigibt oder das eigene Programm beendet.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
uweb
Beiträge: 461
Registriert: 13.07.2005 08:39

Beitrag von uweb »

Ich muß mich wiederholen :
:oops:
Vielleicht bin ich heute schwer von Begriff aber das habe ich nicht verstanden.
Wo ist der Unterschied ?
Antworten