milucy95
(usa Debian)
Enviado em 01/02/2016 - 10:03h
Eu tenho um arquivo .sh e .c, quero que o meu script em sh dentro dele execute o meu arquivo em c. É um relatório de acesso que usa também o zenity para interface.
Gostaria de saber como que faço para executar dentro do sh o c. Já usei gcc -c e gcc -o e aparecem mensagens do tipo diretórios não encontrados ou permissão negada. Alguém pode me ajudar ?
SCRIPT .sh
#!/bin/bash
#criando arquivo para armazenar informação do usuário pesquisado
touch ./RELATORIO/ResultUsuario.txt
#janela pedindo o nome de login do usuario
usuario=$(zenity --entry --title="Busca pelo login" --text="Digite o login do usuário" --entry-text="login")
#busca por TODAS as informações do usuário e armazenando informação no arquivo criado
grep -R -i $usuario ./RELATORIO/teste.log >> ./RELATORIO/ResultUsuario.txt
#AQUI DEVE SER FEITA A EXECUÇÃO DO ARQUIVO EM .C , QUE VAI FILTRAR A INFORMAÇÃO DO USUÁRIO
#janela exibindo o resultado da pesquisa já filtrada
zenity --info --text= #RESULTADO DO ARQUIVO EM C
#limpa o arquivo para uma nova pesquisa
> ./RELATORIO/ResultUsuario.txt
E esse é o arquivo .C
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *arquivo = fopen("../RELATORIO/ResultUsuario.txt", "r");
int caractere; // caractere a ser lido
// string a ser pesquisada
char pesquisa[] = "srcip";
// posicao de início da pesquisa
int pos = 0;
// status da pesquisa
int encontrei = 0;
// testa se o arquivo foi aberto com sucesso
if(arquivo != NULL){
// vamos usar um laço para ler o conteúdo do arquivo
// um caractere de cada vez
while((caractere = fgetc(arquivo)) != EOF){
// vamos verificar se o caractere atual se iguala ao
// primeiro caractere da string a ser pesquisada
if((caractere == pesquisa[0]) && (!encontrei)){
encontrei = 1; // podemos continuar a pesquisa a partir daqui
pos = 0;
}
if(encontrei){
if(caractere == pesquisa[pos]){
encontrei = 1; // continua a pesquisa
pos++; // incrementa a posição de busca
if(pos == strlen(pesquisa))
break;
}
else{
encontrei = 0;
}
}
}
fclose(arquivo); // libera o ponteiro para o arquivo
}
else
printf("Nao foi possivel abrir o arquivo.");
if(encontrei){
printf("A string pesquisada existe no arquivo");
}
else{
printf("A string pesquisada NAO existe no arquivo");
}