Seltsames Verhalten mit statischem String

  • Hi!


    Ich bastle gerade ein wenig am VDR rum und schön langsam drehe ich durch. Folgendes will nicht funktionieren:


    Der Codeschnippsel

    Code
    printf("%s\n", cTimer::PrintDay(timer.StartTime() ) );


    liefert (erwartungsgemäß):

    Code
    -----SS@2004-12-05


    So weit so gut, allerdings wenn ich

    Code
    char buf[256];
    snprintf(buf, sizeof(buf), "%s", (cTimer::PrintDay(timer.StartTime() ) ) );
    printf("%s\n", buf);


    mache, dann erhalte ich irgendwie totalen Blödsinn:

    Code
    1102201200


    Kann mir das jemand erklären .... ?( :rolleyes:


    Dabei ist timer irgendein Timer von VDR und die Funktion PrintDay ist von VDR und sieht so aus:


    Danke und Gruß,
    Brougs78

    - -- --- ================================================================ --- -- -
    Antec Fusion, Intel E5200, Asus P5N7A-VM (VDPAU), DD CineS2 v6 + DD DuoFlex CI // yavdr-0.6.1
    - -- --- ================================================================ --- -- -

  • Hi!


    Warum? Der Aufruf erfolgt mit denselben Parametern somit sollte dasselbe herauskommen.
    Es wird ja in beiden Varianten

    Code
    cTimer::PrintDay(timer.StartTime() )


    aufgerufen, weshalb immer der gleiche String zurückgegeben werden sollte.


    Gruß,
    Brougs78

    - -- --- ================================================================ --- -- -
    Antec Fusion, Intel E5200, Asus P5N7A-VM (VDPAU), DD CineS2 v6 + DD DuoFlex CI // yavdr-0.6.1
    - -- --- ================================================================ --- -- -


  • Ich weiss nicht, in welchen Kontext die Aufrufe stattfinden, nur die 2. Ausgabe von dir


    Code
    1102201200


    kommt daher, dass


    Code
    if ((d & 0x80000000) != 0) {


    nicht wahr ist/wird und somit der else-Fall durchlaufen wird, die Ausgabe des ints d ...


    ...vielleicht gibt das Flag 0x80000000 an, ob es sich um einen repeating Timer handelt ....???


    arghgra

  • Hi!


    Danke für die Hilfe.


    Also ich hab das jetzt anders gemacht, war so nicht ganz richtig. Dass bei zwei gleichen Aufrufen zwei mal was anderes rauskommt ist mir aber doch nicht ganz logisch.
    Das mit dem Flag hast du übrigens richtig angenommen, ist für die wöchentlichen Timer.


    Gruß,
    Brougs78

    - -- --- ================================================================ --- -- -
    Antec Fusion, Intel E5200, Asus P5N7A-VM (VDPAU), DD CineS2 v6 + DD DuoFlex CI // yavdr-0.6.1
    - -- --- ================================================================ --- -- -

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!