Beiträge von davewood

    Und zwar gibt mir die default config vom ubuntu package für /proc folgende config

    beim --check kommt dann folgendes im report vor.

    Wie konfiguriert man sinnvollerweise, ganz auslassen dass proc Verzeichznis oder die Errormeldungen gekonnt ignorieren?

    Und wenn ich dann die tripwire db updaten möchte bekomme ich folgende Meldung.

    Zitat


    Interactive Update failed.
    ### Error: Report file could not be parsed. Report may be corrupt.
    ### Exiting...


    ps: Update failure lässt sich lösen indem man dem tripwire --update Befehl ein LC_ALL=C voranstellt.

    Ubuntu 7.10
    Tripwire(R) 2.3.1.2

    a) ich frag mich was ein einsames sterndl vor dem t ueberhaupt tut. Der Code ist nu teilweise von mir und diese Zeile hab nicht ich geschrieben.

    b) selbst wenn ich das Sterndl wegtue hab ich diesselbe Compilerwarnung

    ps: gott bin ich deppert, hab das falsche sterndl weggetan, frage a steht aber noch :)
    pps: gott bin ich noch deppertert, hab das uebersehen

    Code
    int ndo2db_db_get_latest_data_time(ndo2db_idi *idi, char *table_name, char *field_name, unsigned long *t){

    Danke Plantschkuh, freu mich immer sehr ueber deine Hilfe :) bin halt verkatert und schon 10h im Dienst :p

    *a) natürlich dereferenzieren, ich dachte schon das *t steht für "void *t" :)
    *b) auch nur weil ichs an der falschen stelle gelöscht habe.

    Code
    776:  *t=(time_t)0L;
    (...)
    809: #ifdef USE_ORACLE
    810:    idi->dbinfo.oracle_result=ora_oci_store_result();
    811:    if((idi->dbinfo.oracle_row=ora_oci_fetch_row(idi->dbinfo.oracle_result))!=NULL){
    812:       t = *(unsigned long *)idi->dbinfo.oracle_row[0];
    813:    }
    814:    ora_oci_free_result(idi->dbinfo.oracle_result);
    815:    idi->dbinfo.oracle_result=NULL;
    816: #endif

    Zeile 776 verwirrt mich grad selber ein wenig. :)

    Ich hab ne Methode die eine row einer Datenbank-Tabelle returniert.

    Da ich nicht weiß aus welchen Datentypen sich die Tabelle zusammensetzt gebe ich einen Pointer auf ein Array Retour (genauer gesagt einen void **)

    Code
    void **ora_oci_fetch_row();

    Wenn ich diese Funktion dann verwende muss zuerst das Arrayelement ausgewählt und dieses dann auf den korrekten Datentyp gecasted werden. Dann nur noch den Pointer dereferenzieren und schon hat man den Value.

    Code
    void **row = ora_oci_fetch_row();
    unsigned long value = *(unsigned long *) row[0];

    Jetzt schreit aber der Compiler:

    Code
    warning: assignment makes pointer from integer without a cast

    Jemand nen Plan? :)

    Der Fehler lag am -shared welches der patch eingebaut hat.

    Mag mir jemand erklaeren warum?

    Zitat


    -shared
    Produce a shared object which can then be linked with other objects to form an executable. Not all systems support this option. For predictable results, you
    must also specify the same set of options that were used to generate code (-fpic, -fPIC, or model suboptions) when you specify this option.[1]

    Hier die Kompilier- und Linkanweisungen falls das was bringen sollte.

    Werd mich gleich mal an Sauzachns Tipp wagen

    Code
    david@pcdt:~/ndoutils-1.4b7-oracle/liboci/src$ make
    gcc -g -O2 -fPIC -I/home/david/ndoutils-1.4b7-oracle/liboci/lib/oracle_instantclient_10_2-32/include -I../../liboci/include  -DHAVE_CONFIG_H -I../../include -I../../include -I../../liboci/include  -DHAVE_CONFIG_H -I../../include -I../../include -I../../liboci/include  -c -o sample.o sample.c
    gcc -g -O2 -fPIC -I/home/david/ndoutils-1.4b7-oracle/liboci/lib/oracle_instantclient_10_2-32/include -I../../liboci/include  -DHAVE_CONFIG_H -I../../include -I../../include -I../../liboci/include  -DHAVE_CONFIG_H -I../../include -I../../include -I../../liboci/include  -c -o liboci.o liboci.c
    ar rcs liboci.a liboci.o
    ranlib liboci.a
    gcc -shared -L/home/david/ndoutils-1.4b7-oracle/liboci/lib/oracle_instantclient_10_2-32/lib -L../../liboci/src  sample.o liboci.a   -o sample

    die C und CPP Flags sind doppelt gemoppelt, komisch.

    ein fflush(NULL) hab ich bereits gemacht bevor ich das posting schrieb.

    wenn der Parameter NULL ist werden alle offenen Dateideskriptoren geflushed.

    gdb werd ich mir wohl endlich anschaun muessen =)

    Hab ebenfalls Ubuntu am rennen btw.

    der Source is frisch ausm SVN ausgecheckt, patch drüberlaufen lassen, autoconf und dann make, also nix mit Dateileichen.

    Kann evt die Reihenfolge in der die libs an den Linker übergeben werden einen Segfault zur Folge habe?

    > ./sample
    > Segmentation fault (core dumped)


    Und dass obwohl ich als allererstes Statement ein printf("debug\n") habe.

    Wie geh ich denn am gscheitesten vor das Problem zu finden. Wohin schreibt er den coredump, im aktuellen working directory hab ich ihn nicht gefunden. Anfangen könnte ich allerdings auch nicht viel damit. =)

    Ich hab naemlich ein Patchfile bekommen dass im autoconf einiges umgestellt hat, im Source allerdings praktisch nichts. Vorher gings, nun bekomm ich den segfault.

    Über Hilfe bin ich sehr dankbar, weil meine Augen brennen schon vom reinstarren in den Monitor.

    http://www.zdnet.de/news/tkomm/0,39023151,39159049,00.htm

    Zitat

    Miro gibt Videos im MPEG-, Quicktime-, AVI-, DivX-, Windows-Media- und Flash-Format wieder. Die Vollbild-Wiedergabe auch von High-Definition-Videos wird unterstützt. Dazu kommen Verwaltungsfunktionen sowohl für die Videosammlung auf dem eigenen PC als auch für Online-Quellen. Zum Funktionsumfang gehört ein Führer für über 2700 kostenlose Online-Video-Channels. Auch Video-RSS-Feeds inklusive Suchfunktionen werden unterstützt.

    Ichs habs nun mit entsprechenden casts gelöst, aber ich frag mich schno grad was das genau bewirkt.

    Evt mags ja wer erklären, ich schaffs heut zumindest nimmer das nachzuschaun weil mir nach 8h Computerarbeit nun bereits die Augen a bissal bluten.

    Aber ist das gscheit?

    Das sowas die Warnings wegbringt is mir klar, aber ob es das richtige im Code tut weiß ich nicht.

    Auf den Punkt gebracht würd ich sagen dass gcc aus "bla bla bla" ein char array macht und die library die ich verwende (Oracles OCI Library) dafür den Typ unsigned char verwendet.