Eawe povo.......to meio sem tempo pra ajuda o povo mas sempre q eu posso eu to ai.....se alguem puder me ajudar com isso eu com certesa vo te mais tempo pro underlinux, eh o seguinte..
finalmente eu comecei a desenvolver em C com BerkeleyDB, estava tendo sucesso ateh cismar de armazenar uma estrutura de dados no banco, inicialmente apos mto sofrimento eu consigui armazenar uma estrutura dentro do maldito banco, tudo ordenado bunitinho, POREM, estava tudo dentro da funcao main(), agora pra ficar melhor o programa eu tive q dividir o programa em funcoes, dai eu criei uma estrutura mais ou menos assim:
Código :struct{ int id. char nome[150]; } my_fields; typedef struct( int N; struct my_fields fields; } MY_TABLE;
ai eu declaro uma variavel do tipo MY_TABLE como ponteiro:
Código :MY_TABLE *tabela;
dai eu faco as funcoes terem como argumento uma variavel do tipo MY_TABLE e tbm como ponteiro, assim:
Código :int funcao(MY_TABLE *tabela);
ateh ai td bem....eu manipulo a estrutura do jeito q eu quizer......soh q tem a maldita estrutura DBT que eh do proprio Berkeley, ela eh assim:
Código :typedef struct { void *data; u_int32_t size; u_int32_t ulen; u_int32_t dlen; u_int32_t doff; u_int32_t flags; } DBT;
dai pra eu armazenar alguma coisa no banco eu tenho q fazer assim:
1° eu seto o tamanho do dado usando data.size=sizeof(tabela)+sizeof(tabela.fields);
2° eu seto o conteudo do dado em data.data (ja previamente declarado assim: DBT data);
soh q pra armazenar uma estrutura eu usavava o memcpy assim:
Código :memcpy(&data.data,tabela,sizeof(tabela)+sizeof(tabela.fields));
soh q depois q eu tive q separar em funcoes, essa porra paro de funciona e passo a dar falha de segmentacao :cry:
alguem sabe o porquê??????
Kakaroto??? chvt??? alguem?????