Datei temporär schreibschützen?

Dieses Thema: "Datei temporär schreibschützen?" im Forum "Java/Mono/dotGNU" wurde erstellt von BravoOne, 06.07.2004.

  1. #1 BravoOne, 06.07.2004
    BravoOne

    BravoOne Grünschnabel

    Dabei seit:
    26.06.2004
    Beiträge:
    2
    Zustimmungen:
    0
    Hallo allemiteinander!

    Ich habe folgendes Problem:

    In meinem Javaprogramm lesen zwei Treads eine Datei aus, bearbeiten diese und schreiben die dann wieder mit Hilfe eines FileWriters. Meine Frage: Besteht die Möglichkeit eine Datei zu "locken", also dafür zu sorgen, dass die Threads nur nacheinander die Datei lesen und anschliessend schrieben können? Ich kann dies leider nicht über eine synchronised-Methode erfolgen.

    Vielen Dank für eure Hilfe

    BravoOne
     
  2. Anzeige

    Schau dir mal diesen Ratgeber an. Viele Antworten inkl. passender Shell-Befehle!
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 qmasterrr, 06.07.2004
    qmasterrr

    qmasterrr Foren Gott

    Dabei seit:
    01.01.2004
    Beiträge:
    2.735
    Zustimmungen:
    0
    Ort:
    Germany/NRW/Wesel
    was hälst du von einer Kontroll Variabel? Bevor du schreibst liest du die und wenn der wert 0 ist setzt du ihn auf 1 und fängst an zu schreiben wenn er schon eins ist dann warteste nen augenblick und lässt den dann nochmal checken, nach dem checken setzt du die wieder auf 0 ..
     
  4. #3 tsuribito, 06.07.2004
    tsuribito

    tsuribito Oberschüler

    Dabei seit:
    04.09.2003
    Beiträge:
    166
    Zustimmungen:
    0
    Ort:
    Duisburg
    Code:
    #include <stdio.h>
    #include <unistd.h>
    #include <fcntl.h>
    
    int main()
    {
      FILE *fp;
      int c;
      struct flock fl;
    
      fl.l_type = F_WRLCK;      /* Write locking on */
      fl.l_whence = SEEK_SET;
      fl.l_start = 0;
      fl.l_len = 0;
    
      fp = fopen("sequence", "r+");
    
      /* Waiting for a lock */
      fcntl(fileno(fp), F_SETLKW, &fl);
    
      fscanf(fp, "%d", &c);
    
      c++;
      printf("My no.: %d\n", c);
      usleep(1);
      /* Writing the new number to a file */
      rewind(fp);
      fprintf(fp, "%d\n", c);
    
      fl.l_type = F_UNLCK;      /* Locking off */
      fcntl(fileno(fp), F_SETLK, &fl);
    So hat Hackin9 das gelöst. Ist zwar die falsche Sprache, kannste aber bestimmt portieren ^^
     
  5. meez

    meez miis

    Dabei seit:
    27.04.2003
    Beiträge:
    46
    Zustimmungen:
    0
    Ort:
    CH
    Semaphore benutzen...
     
Thema:

Datei temporär schreibschützen?

Die Seite wird geladen...

Datei temporär schreibschützen? - Ähnliche Themen

  1. temporäre Datei sortieren

    temporäre Datei sortieren: Hallo, ich habe eine Datei die in der vierten Spalte aufsteigend zu sortieren ist: M110 # (177,2,0) # 1.00 # 11.01.2012 14:48 #...
  2. Fuzzy-Test für Dateisysteme vorgestellt

    Fuzzy-Test für Dateisysteme vorgestellt: Entwickler bei Oracle haben einen Fuzzy-Tester auf einige Linux-Dateisystem-Implementierungen losgelassen. Dabei haben sie zahlreiche Fehler...
  3. Benötige Hilfe- Dateien vergleichen

    Benötige Hilfe- Dateien vergleichen: Hallo, für eine Arbeit an der Uni muss ich einige viele Bilder miteinander vergleichen, was ich gerne durch eine Automatisierung etwas...
  4. Amarok streikt bei *.m4a Dateien

    Amarok streikt bei *.m4a Dateien: Hallo zusammen, vor Kurzem habe ich einen neuen Rechner zusammengebaut und mit OpenSuse 13.2 aufgesetzt. Nun musste ich aber feststellen, dass...
  5. Textdatei zeilenweise in durchnummerierte Variablen schreiben

    Textdatei zeilenweise in durchnummerierte Variablen schreiben: Hi Leute, ich versuche folgendes Problem zu lösen. Ich möchte eine Textdatei einlesen und den Inhalt jeder Zeile in immer eine neue Variable...