+ Responder ao Tópico



  1. #1

    Question Executando um arquivo .C dentro do script .SH

    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");
    }

  2. #2

    Padrão Re: Executando um arquivo .C dentro do script .SH

    Olá, já tentou dar permissão ao arquivo usando chmod 755? Após isso execute o arquivo com ./nome_arquivo. Se nao der certo recomendo usar o comando cc arquivo.c -o arquivo para compilar.