Datei temporär schreibschützen?

Dieses Thema 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...
     
  6. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
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. Dateiinhalte vergleichen - Neue Sätze dann ausgeben

    Dateiinhalte vergleichen - Neue Sätze dann ausgeben: Liebe Forumsmitglieder, ich benöte mal wieder Eure Hilfe: Ich möchte 2 Dateien vergleichen. Datei-1 hat z.B. 100 Datensätze mit mehreren Feldern...
  3. Dateien selektieren und zählen

    Dateien selektieren und zählen: Hallo, das ist mein erster Beitrag, bitte entschuldigt, falls nicht alles richtig geschrieben ist. Ich muss meine erste Hausaufgabe als...
  4. Timestamp an Inhalt einer Textdatei anfügen

    Timestamp an Inhalt einer Textdatei anfügen: Hallo, ich als neuer, unerfahrener Nutzer von Linux und der bash hätte folgende Frage. Und zwar würde ich gerne mit einem command den Zeitstempel...
  5. 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...