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);
} // */
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)