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. #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 ..
     
  3. #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 ^^
     
  4. 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. 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...
  3. 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...
  4. Zertifikatsdateien

    Zertifikatsdateien: Hallöchen und einen schönen Abend! Ich habe zurzeit folgendes Problem. Ich habe eine SSL Wildcard für subdomain (als Beispiel *.example.com). Ich...
  5. GParted 0.24 erkennt ZFS-Dateisysteme

    GParted 0.24 erkennt ZFS-Dateisysteme: Mit der Freigabe von GParted 0.24 korrigiert das Team diverse Fehler, fügt dem Programm aber auch etliche Neuerungen hinzu. Unter anderem erkennt...