Ir para conteúdo
Fórum Script Brasil

Renato Piazza Fermi

Membros
  • Total de itens

    6
  • Registro em

  • Última visita

Sobre Renato Piazza Fermi

Renato Piazza Fermi's Achievements

0

Reputação

  1. Usa windows? Primeiro mude pra linux. Mas falando sério, não há nada de tão complicado. Ao posicionar uma nova atualização em seu computador, crie uma flag, ou um executavel que fique rodando para checar as mudanças em arquivos iguais. Feito isso, faça um for para pingar os ips e descobrir quais existem em sua rede, ou em caso de já conhecer a lista, crie um registro interno no programa e percorra a lista enviando o arquivo que possuir a data de alteração mais recente para os ips listados. Abraços
  2. Se você puder postar o codigo do que você está fazendo, ou o que já fez, fica mais facil de ajudá-lo. Só não espere que o codigo vá aparecer pronto, pois acho dificil! Abraços
  3. Bom, mesmo sem alguma resposta, lá vai a solução que descobri depois de algum tempo: Ao popular a struct gstHd, bem como todas as outras, é necessario alocar memoria dinamicamente, tantas quantas forem as vezes necessárias para isso. Na linha: gstHd = gstHd->pstHd_Next; O que estava fazendo de errado era inserir um novo elemento vazio na lista, porém sem alocação de memoria, o que pode ser resolvido com: gstHd->pstHd_Next = (t_stHd *)malloc(sizeof(t_stHd)); Obrigado. E até mais
  4. Do que mais você precisa saber?? Vou escrever os structs e mostrar os escopos.: typedef struct stHd { int iCpu_Key; char szHd_Size[32]; struct stHd *pstHd_Next; }t_stHd; gstHd - Struct Global stHdOK - Struct local da procedure vHd(); que é chamada no main. Minha Ideia é usar a struct local stHdOK para tratar os dados e no fim da procedure vHd atribuí-los a struct global gstHd
  5. Valeu logan, Eu tava compilando com o gcc e tava dando include 2 vezes no header.. Agora estou com outro problema.. Vamos ver se alguém consegue me ajudar nessa: for( gstHd = stHdOK; fgets(szLine, sizeof(szLine), pfResult); /*stHdOK = stHdOK->pstHd_Next*/ ){ <--- O erro está aqui ... strcpy(stHdOK->szHd_Size, (strstr(szLine, ": ")+2)); pch = strtok(stHdOK->szHd_Size, "\n"); strcpy(stHdOK->szHd_Size, pch); pch = strstr(stHdOK->szHd_Size, ","); *pch = 0; printf("sizeHD[%s]\n", stHdOK->szHd_Size); } Quando eu populo a struct stHdOK primeira vez o dado vem correto, na segunda iteração do for eu encontro um segmentation fault... Pra quem quizer saber, buffer de entrada é o resultado de um arquivo com 2 linhas. gstHd é uma struct global que recebe o endereço para o primeiro nó da lista formada pela struct stHdOK. Abraços..
  6. Olá Caros, Escrevi um programa em C que realiza uma rotina de tratamentos de dados vindos do Shell, em seguida esses dados são salvos numa struct. Estou cometendo algum erro, mas não consigo encontrá-lo. Muito grato. Renato A definição de t_stHd no Header(pegadados.h): typedef struct stHd { int iCpu_Key; char szHd_Size[12]; struct stHd *pstHd_Next; }t_stHd; Global (pegadados.c): t_stHd *gstHd; No Main(pegadados.c): gstHd = (t_stHd *)malloc(sizeof(t_stHd)); vHd(); A procedure vHd() que popula a struct(pegadados.c): void vHd(void){ FILE *pfResult; char szHdQty[8]; // Quantidade de HD's char *pch; char szLine[1024]; int iI = 0; strcpy(szRequest, "fdisk -l | grep \"Disk /dev\" | wc -l"); pfResult = popen(szRequest, "r"); fgets(szHdQty, sizeof(szHdQty), pfResult); szHdQty[strlen(szHdQty) - 1] = 0; gstCpu.iHd_Qty = atoi(szHdQty); pclose(pfResult); char szHdSize[atoi(szHdQty)][16]; // Tamanho dos HD's strcpy(szRequest, "fdisk -l | grep \"Disk /dev\""); pfResult = popen(szRequest, "r"); while( (fgets(szLine, sizeof(szLine), pfResult) != NULL) && (iI < atoi(szHdQty)) ){ strcpy(szHdSize[iI], (strstr(szLine, ": ")+2)); pch = strtok(szHdSize[iI], "\n"); strcpy(szHdSize[iI], pch); pch = strstr(szHdSize[iI], ","); *pch = 0; strcpy(gstHd->szHd_Size, szHdSize[iI]); iI++; gstHd = gstHd->pstHd_Next; } gstHd->pstHd_Next = NULL; pclose(pfResult); return; } Ao compilar recebo as seguintes mensagens de erro pegadados: In function `_start': (.text+0x0): multiple definition of `_start' /usr/lib/gcc/i486-slackware-linux/4.2.4/../../../crt1.o:(.text+0x0): first defined here pegadados:(.rodata+0x0): multiple definition of `_fp_hw' /usr/lib/gcc/i486-slackware-linux/4.2.4/../../../crt1.o:(.rodata+0x0): first defined here pegadados: In function `_fini': /glibc-tmp-b75955b10861dacaae44bdced9fc4b9c/glibc-2.7/build-glibc-2.7/csu/crti.S:41: multiple definition of `_fini' /usr/lib/gcc/i486-slackware-linux/4.2.4/../../../crti.o:/glibc-tmp-b75955b10861dacaae44bdced9fc4b9c/glibc-2.7/build-glibc-2.7/csu/crti.S:41: first defined here pegadados: In function `vDevices': (.text+0x80c): multiple definition of `vDevices' /tmp/ccqQzCsC.o:pegadados.c:(.text+0x76b): first defined here pegadados: In function `vSerial': (.text+0xcfb): multiple definition of `vSerial' /tmp/ccqQzCsC.o:pegadados.c:(.text+0xc5a): first defined here pegadados:(.rodata+0x4): multiple definition of `_IO_stdin_used' /usr/lib/gcc/i486-slackware-linux/4.2.4/../../../crt1.o:(.rodata.cst4+0x0): first defined here pegadados: In function `__data_start': (.data+0x0): multiple definition of `__data_start' /usr/lib/gcc/i486-slackware-linux/4.2.4/../../../crt1.o:(.data+0x0): first defined here pegadados: In function `__data_start': (.data+0x4): multiple definition of `__dso_handle' /usr/lib/gcc/i486-slackware-linux/4.2.4/crtbegin.o:(.data+0x0): first defined here pegadados: In function `vTimeNow': (.text+0xea8): multiple definition of `vTimeNow' /tmp/ccqQzCsC.o:pegadados.c:(.text+0xe07): first defined here pegadados: In function `vLocalUser': (.text+0x1202): multiple definition of `vLocalUser' /tmp/ccqQzCsC.o:pegadados.c:(.text+0x1161): first defined here pegadados: In function `vKernelVers': (.text+0x1126): multiple definition of `vKernelVers' /tmp/ccqQzCsC.o:pegadados.c:(.text+0x1085): first defined here pegadados: In function `vMem': (.text+0x4d4): multiple definition of `vMem' /tmp/ccqQzCsC.o:pegadados.c:(.text+0x433): first defined here pegadados: In function `vSoVersion': (.text+0xf16): multiple definition of `vSoVersion' /tmp/ccqQzCsC.o:pegadados.c:(.text+0xe75): first defined here pegadados: In function `vProc': (.text+0x306): multiple definition of `vProc' /tmp/ccqQzCsC.o:pegadados.c:(.text+0x265): first defined here pegadados: In function `vCpuName': (.text+0x1194): multiple definition of `vCpuName' /tmp/ccqQzCsC.o:pegadados.c:(.text+0x10f3): first defined here pegadados: In function `main': (.text+0x84): multiple definition of `main' /tmp/ccqQzCsC.o:pegadados.c:(.text+0x0): first defined here pegadados: In function `_init': /glibc-tmp-b75955b10861dacaae44bdced9fc4b9c/glibc-2.7/build-glibc-2.7/csu/crti.S:15: multiple definition of `_init' /usr/lib/gcc/i486-slackware-linux/4.2.4/../../../crti.o:/glibc-tmp-b75955b10861dacaae44bdced9fc4b9c/glibc-2.7/build-glibc-2.7/csu/crti.S:15: first defined here pegadados: In function `vHd': (.text+0xdc): multiple definition of `vHd' /tmp/ccqQzCsC.o:pegadados.c:(.text+0x3f): first defined here
×
×
  • Criar Novo...