signal() Problem mit übergabe für Signalhandler



  • Hallo Manni66,
    vielen Dank für Deine schnelle Antwort.
    Heist das, dass mit C++ sowas nicht möglich ist?
    Tja, ich möchte weiterhin mit C++ arbeiten, weil das Problem Teil eines größeren Projektes ist.
    Ich habe es schon mit type-cast operator probiert aber das krieg ich nicht hin.



  • c++Kurti schrieb:

    Heist das, dass mit C++ sowas nicht möglich ist?

    Du hast meine Antwort aber schon gelesen?
    Dann erkläre mal, wie du diese Aussage daraus ableiten willst.



  • Hallo manni66;
    Tut mir leid, wenn das missverständlich war. Aber die Aussage "...und nebenbei auch noch funktionieren" hat mich doch etwas stutzig werden lassen.



  • c++Kurti schrieb:

    Hallo manni66;
    Tut mir leid, wenn das missverständlich war. Aber die Aussage "...und nebenbei auch noch funktionieren" hat mich doch etwas stutzig werden lassen.

    Ich kan dir mit jedem Satz, den du sagst, weniger folgen.


  • Mod

    c++Kurti schrieb:

    Heist das, dass mit C++ sowas nicht möglich ist?

    Wo hat er das denn gesagt? Natürlich kann man das in C++ machen, auch mit Klassen. Es ist nur ziemlich sinnlos eine Klasse ohne Member zu machen, das ist ein schlechter Ersatz für einen Namespace.



  • Lieber Seppj, lieber mani66,
    ich habe den Eindruck, dass hier einiges aus dem Ruder läuft.
    Deshalb möchte hier mal einiges voraus sagen:
    Ich arbeite privat an einem größeren Project mit dem periodisch Schrittmotoren gesteuert und Sensoren gelesen werden. Dabei bin ich eben auf dieses Problem gestoßen und ich möchte fagen ob es da eine Lösung mit der Parameterübergabe gibt, damit ich besser verstehe wie man sowas löst.
    Natürlich ist das vorliegende Beispiel nicht das Ende der Fahnenstange, sondern nur ein kleiner Teil des geplanten Objektes.
    Nun aber zu der Art wie sich das ganze entwickelt hat:

    1.Ich habe ein Problem, das ich hier geschildert habe und um Hilfe angefragt habe.

    2.Darauf hat mir manni66 geantwortet und mich gefragt:

    manni66 schrieb:

    Warum ist das eine Klasse? Ein simpler Namespace würde den gleichen Zweck erfüllen und nebenbei auch noch funktionieren.

    3.Darauf habe ich ihm denke ich höflich geantwortet und ihm erkärt warum ich bei dem Klassenprinzip beleiben wolle. Nebenbei habe ich gefragt ob das mit C++ eventuell nicht möglich sei weil er ja schrieb dass das mit Namespaces funktioniert.
    Doch manni66 ich habe Deine Anregung zur Kenntnis genommen dass man das möglicherweise mit Namespaces besser bzw. einfacher machen kann.

    Zu Deiner Mitteilung Seppj :
    Das vorliegende Programm ist nur ein kleines Beispiel mit dem ich das Problem darstellen wollte. Da gehört noch mehr dazu, aber das würde keinen Sinn machen wenn ich da einen zu langen Code schiecken würde.
    Ich würde mich freuen, wenn ich schon bald Hilfe zu meinem Problem bekomme. Also verkürzt:
    Wie bekomme ich das hin, dass die Funktion signal(...) den Parameter timer_handler annimmt.
    Vielen Dank nochmal.



  • c++Kurti schrieb:

    Also verkürzt:
    Wie bekomme ich das hin, dass die Funktion signal(...) den Parameter timer_handler annimmt.

    Mach timer_handler static.



  • krumpli schrieb:

    c++Kurti schrieb:

    Also verkürzt:
    Wie bekomme ich das hin, dass die Funktion signal(...) den Parameter timer_handler annimmt.

    Mach timer_handler static.

    Dann erklär mal, warum das besser ist, als einen Namespace zu verwenden.



  • Hallo Krumpli,

    vielen Dank für Deinen Tip.
    Das sieht gut aus. 🙂



  • manni66 schrieb:

    krumpli schrieb:

    c++Kurti schrieb:

    Also verkürzt:
    Wie bekomme ich das hin, dass die Funktion signal(...) den Parameter timer_handler annimmt.

    Mach timer_handler static.

    Dann erklär mal, warum das besser ist, als einen Namespace zu verwenden.

    Hab ich gesagt dass es besser ist? Ich habe diesen Vorschlag nur gemacht, weil er darauf hinweist, dass das nur ein Beispiel ist, um das Problem zu verdeutlichen.
    Wenn man schon unbedingt aufgrund des gezeigten Codes Verbesserungen erzwingen will hätte man mMn. statt namespace auf die Verwendung eines lambdas hinweisen können - die funktionieren nämlich auch wunderbar als signal-handler (solange man nichts capturen muss).


Anmelden zum Antworten