Enviado em 15/02/2016 - 15:32h
Olá, galera ! Tenho o bem básico do C mesmo, meu supervisor me deu esse código só que não está executando de forma alguma. Tá dando o seguinte erro: "C:\Users\Filipe\AppData\Local\Temp\ccgYJGug.o pop_Alarmes.c:(.text+0x1569): undefined reference to `ret_Espacos' " e também está dando esse "C:\Users\Filipe\AppData\Local\Temp\ccgYJGug.o pop_Alarmes.c:(.text+0x155d): undefined reference to `obter_nToken'" .// Obter a Descrição do Alarme
j = 0;
for(i=aux; i<col1; i++){
descricao[j++] = linha_arquivo[i];
}
descricao[j] = '\0';
ret_Espacos(descricao);
// Obter o Tipo de Alarme
j = 0;
for(i=col1; i<125; i++){
tipo[j++] = linha_arquivo[i];
}
tipo[j] = '\0';
ret_Espacos(tipo);
// Obter a ocorrenciarmação do arquivo
j = 0;
for(i=125; i<155; i++){
ocorrencia[j++] = linha_arquivo[i];
}
ocorrencia[j] = '\0';
ret_Espacos(ocorrencia);
// Para cada linha do arquivo ocorre a chamada a funcao dependendo do metodo de insercao utilizado
// que se utiliza das variaveis idAlrm, nome_equip, descricao, tipo, ocorrencia, horario, data e as insere no banco
switch( enum_metodo_insercao){
case COPY:
cria_arqCOPY_alarmes();
break;
case INSERT:
cria_arqINSERT_alarmes();
break;
default:
printf("Comando desconhecido. ");
break;
}
// Pega outra linha do arquivo
fgets(linha_arquivo,1000,arq_alarmes);
}
if( enum_metodo_insercao == COPY ) {
fclose(arq_COPY);
}
fclose(arq_alarmes);
fclose(arq_SQL);
} // fim da função pop_Alarmes */
void pop_Equip_open(){
//printf("\n\nNewton");
if( (arq_SQL = fopen(path_arq_cmdsql,"w")) == NULL) {
printf("Erro ao criar arquivo de saida contendo o SQL\n");
exit(1);
}
if( enum_metodo_insercao == COPY ){
if((arq_COPY = fopen(path_arq_logCOPY,"w")) == NULL){
printf("Erro ao criar arquivo de log_COPY\n");
exit(1);
}
if((arq_COPY2 = fopen(path_arq_logCOPY2,"w")) == NULL){
printf("Erro ao criar arquivo de log_COPY2\n");
exit(1);
}//*/
}
pop_Alarmes_csv(1);
pop_Alarmes_csv(2);
pop_Alarmes_csv(3);
pop_Alarmes_csv(4);
criar_Tabela_Arquivo_SAGE();
cria_arqSQLCopy_csv();
fclose(arq_SQL);
if( enum_metodo_insercao == COPY ){
fclose(arq_COPY);
fclose(arq_COPY2);
}
} // fim
int pop_Alarmes_csv(int n){
char aux1[100];
char query[1024];
char linha_arquivo[10001];
char linha_newton[10001];
char path_arquivo_alarmes_aux[1000];
int aux, i, j;
int flag_subes_exist;
strcpy(path_arquivo_alarmes_aux, path_arquivo_alarmes);
snprintf (aux1, sizeof(aux1),"-%d.csv", n);
strcat(path_arquivo_alarmes_aux ,aux1);
// Abrindo o arquivo de Alarmes
if( (arq_alarmes = fopen(path_arquivo_alarmes_aux,"r")) == NULL) {
printf("Erro ao tentar abrir arquivo de alarmes.\nARQUIVO - %s\tPATH - %s\n",_NOME_ARQUIVO, path_arquivo_alarmes_aux);
return;
}
for(i = 0; i<=7; i++){
fgets(linha_arquivo,1000,arq_alarmes);
}
i = 0;
while( !feof(arq_alarmes) ) {
printf("\n [a] i - %d || strlen(linha_arquivo) = %d || linha_arquivo - %s",i,strlen(linha_arquivo),linha_arquivo);
if( strcmp(linha_arquivo, "\n")==0 ){ break;}
strcpy( nome_equip_aux, strtok(linha_arquivo,";"));
if(strcmp(nome_equip_aux, "") ==0 ) { break;}
else strcpy(nome_equip_csv[i], nome_equip_aux);
ret_Espacos(nome_equip_csv[i]);
strcpy( descricao_csv[i], strtok(NULL, ";"));
ret_Espacos(descricao_csv[i]);
// Pega outra linha do arquivo
strcpy( limit1[i], strtok(NULL, ";"));
ret_Espacos(limit1[i]);
strcpy( limit2[i], strtok(NULL, ";"));
ret_Espacos(limit2[i]);
strcpy( limit3[i], strtok(NULL, ";"));
ret_Espacos(limit3[i]);
strcpy( limit4[i], strtok(NULL, ";"));
ret_Espacos(limit4[i]);
strcpy( limit5[i], strtok(NULL, ";"));
ret_Espacos(limit5[i]);
strcpy( limit6[i], strtok(NULL, ";"));
ret_Espacos(limit6[i]);
snprintf (query, sizeof(query),"%s$%s$%s$%$s$%s$%s$%s$%s", nome_equip_csv[i], descricao_csv[i], limit1,limit2, limit3, limit4, limit5, limit6);
fprintf( arq_COPY2,"%s\n",query);
fgets(linha_arquivo,1000,arq_alarmes);
i++;
}
fgets(linha_arquivo, 10000, arq_alarmes);
fgets(linha_arquivo, 10000, arq_alarmes);
while( !feof(arq_alarmes) ) {
if(strcmp(linha_arquivo, "\n")==0) break;
strcpy(horario, strtok(linha_arquivo, ";"));
ret_Espacos(horario);
j = 0;
strcpy(valor, strtok(NULL, ";"));
while(valor != NULL && j<i ){
ret_Espacos(valor);
snprintf (query, sizeof(query),"%s$%s$%s", horario, nome_equip_csv[j], valor );
fprintf( arq_COPY,"%s\n",query);
j++;
if(j<i) strcpy(valor, strtok(NULL, ";"));
}
fgets(linha_arquivo, 10000, arq_alarmes);
}
fclose(arq_alarmes);
return 1;
}
void pop_Alarmes_pas(){
char linha_arquivo[1001];
char query[1024];
int flag_subes_exist;
int aux, i, j;
// Abrindo o arquivo de Alarmes
if( (arq_alarmes = fopen(path_arquivo_alarmes,"r")) == NULL) {
printf("Erro ao tentar abrir arquivo de alarmes.\nARQUIVO - %s\tPATH - %s\n",_NOME_ARQUIVO, path_arquivo_alarmes);
exit(1);
}
if( (arq_SQL = fopen(path_arq_cmdsql,"w")) == NULL) {
printf("Erro ao criar arquivo de saida contendo o SQL\n");
exit(1);
}
if( enum_metodo_insercao == COPY ){
if((arq_COPY = fopen(path_arq_logCOPY,"w")) == NULL){
printf("Erro ao criar arquivo de log_COPY\n");
exit(1);
}
}
criar_Tabela_Arquivo_SAGE();
// insere dados no postgres utilizando o comando copy
if ( enum_metodo_insercao == COPY ) {
cria_arqSQLCopy_pas();
}
if( !feof(arq_alarmes) ) {
fgets(linha_arquivo,1000,arq_alarmes);
obter_nToken(linha_arquivo,horario,4);
}
if(!feof(arq_alarmes)) fgets(linha_arquivo,1000,arq_alarmes);
if(!feof(arq_alarmes)) fgets(linha_arquivo,1000,arq_alarmes);
i = 0;
while( !feof(arq_alarmes) ) {
if(linha_arquivo[0]=='h'){
obter_nToken(linha_arquivo,horario,4);
ret_Espacos(horario);
break;
}
obter_nToken(linha_arquivo,nome_equip_pas[i],2);
ret_Espacos(nome_equip_pas[i]);
fgets(linha_arquivo,1000,arq_alarmes);
i++;
}
j = 0;
while( !feof(arq_alarmes)){
if(linha_arquivo[0]=='h'){
obter_nToken(linha_arquivo,horario,2);
ret_Espacos(horario);
fgets(linha_arquivo,1000,arq_alarmes);
j=0;
continue;
}
obter_nToken(linha_arquivo,valor,2);
ret_Espacos(valor);
if(strcmp("*",valor)==0 || strcmp("",valor)==0)
strcpy(valor,"-10000");
strcpy(nome_equip_aux, nome_equip_pas[j]);
switch( enum_metodo_insercao){
case COPY:
cria_arqCOPY_pas();
break;
case INSERT:
cria_arqINSERT_pas();
break;
default:
printf("Comando desconhecido. ");
break;
}
j++;
if(j>i) break;
fgets(linha_arquivo,1000,arq_alarmes);
}
fclose(arq_COPY);
fclose(arq_alarmes);
fclose(arq_SQL);
} // */
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Como atualizar o Debian 8 para o 10 (10)
Dica sobre iptables ACCEPT e DROP (6)
NGNIX - Aplicar SNAT para evitar roteamento assimetrico (29)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta