Daten transferieren



  • Hallo,
    im Buch C++ lernen und professionell anwenden, ist ein Absatz mit volatile-Objekten:

    Volatile-Objekte
    Mit dem selten benutzten Schlüsselwort volatile werden Variablen definiert, die nicht nur durch das Programm selbst, sondern auch durch andere Programme und Ereignisse von außerhalb veränderbar sind. Solche Ereignisse können etwa durch Interrupts einer Hardware-Uhr hervorgerufen werden.
    Beispiel: volatile unsigned long clock_ticks;
    Auch wenn das Programm selbst die Variable nicht verändert, muss der Compiler davon ausgehen, dass sich der Wert der Variablen seit dem letzten Zugriff verändert haben kann. Der Compiler erzeugt daher Maschinencode, der bei jedem lesenden Zugriff auf die Variable den Wert erneut einliest (und nicht mit dem zuvor gelesenen Wert weiterarbeitet.)

    Wie das funktionieren soll ist mir allerdings ein Rätsel, hat jemand schonmal damit gearbeitet?



  • volatile bedeutet für den Compiler einfach nur, dass er die Variable nicht wegoptimieren darf, zB. könnte er die einfach in Register oder so packen, dass die im effektiven Code gar nicht vorkommt.

    @DocJ
    naja Dateien können leicht zu Race Conditions führen!



  • Hallo

    Atom unter Windows

    MfG
    Klaus



  • Original erstellt von KlausB:
    **Hallo

    Atom unter Windows

    MfG
    Klaus**

    falsch!



  • Ja, dazu gibt es ziemlich viele Wege, die aber vom verwendeten Betriebssystem abhängen.

    😮 😮 😮

    Räusper ... äh ... Remote Procedure Calls sind DCE-definierte Standards nehmen bei der Entwicklung verteilter Software eine Schlüsselrolle ein (ja, ja auch Com+ verwendet sie!).

    Die Orientierung am DCE-Standard garantiert eine Möglichkeit der Interoperabilität zwischen Softwarekomponenten auf Windows NT/2000/XP / Windows 95/98 und einem DCE-System (Unix/Linux). 🙂

    Pipes funktionieren unter Windows 98 erst gar nicht ... 🙄



  • Original erstellt von DocJunioR:
    Windowsmäßig gibt's dann noch die Pipes.

    "Windowsmäßig"? 😕
    IMHO kommen Pipes von Unix. 😕



  • Hmm
    Kann mir da mal einer n Beispiel dafür geben?
    Nur so als Ansatz.

    MFG
    FatalError





  • Pipes kommen von Unix, in DOS 2.0 oder so hat MS dann müselig versucht so etwas in ihren Kernel zu hacken.

    Pipes funktionieren unter Windows 98 erst gar nicht ... rolleyes

    Ich programmiere zwar nicht für Windows, aber es gibt AFAIK ein Aufruf zum erzeugen einer Pipe.

    Räusper ... äh ... Remote Procedure Calls sind DCE-definierte Standards nehmen bei der Entwicklung verteilter Software eine Schlüsselrolle ein

    Ich kenn mich mit DCE nicht aus, aber IPC != RPC 🙂 und um die DCE IPC Features zu nutzen das ganze Projekt auf DCE umzustellen, ist vielleicht ein bisschen heftig 😉 (BTW. CORBA ist ja was ähnliches).

    @FatalError

    Kann mir da mal einer n Beispiel dafür geben?

    Wofür? Stell deine Frage präziser und gibt uns ein paar Informationen, die uns helfen dein Problem zu lösen (zum Beispiel solltest du feststellen, nach der bisherigen Diskussion, dass es sehr interessant wär das OS zu erfahren).

    http://www.catb.org/~esr/faqs/smart-questions.html



  • Nagut, hier kommen ein paar Infos:

    Also, ich will es in Windows 98 proggen.
    Ich weiß jetzt nich so recht, was für Infos ihr noch braucht, ich schreib jetzt einfach mal, die Vorraussetzungen:
    Es soll min. 3 Transfers in der Sekunde sein, aber ich brauche nur eine einzige integer-Zahl übermitteln.

    Kann man diesen Voraussetzungen gerecht werden 😕

    MFG
    FatalError



  • Also, ich will es in Windows 98 proggen.

    Dann fallen Named Pipes schon mal weg.

    Was darf's denn zuerst sein, die Server- oder die Clientapplikation? 🙄


Anmelden zum Antworten