Eu tenho que fazer este exercicio mas estoucom algumas dificuldades alguem me pode ajudar, tem que funcionar em ambiente linux
Implemente um programa de monitorização que permita verificar, a cada 60 segundos, quais são os
utilizadores que estão ligados no sistema (“who”). O resultado do comando deve ser guardado (de forma
incremental) num ficheiro de registos (“logs.txt”). O programa deve ainda efetuar um registo adicional
sempre que receber um CTRL+C. Não é permitido o uso da função “sleep”.
Ate agora fiz isto
Implemente um programa de monitorização que permita verificar, a cada 60 segundos, quais são os
utilizadores que estão ligados no sistema (“who”). O resultado do comando deve ser guardado (de forma
incremental) num ficheiro de registos (“logs.txt”). O programa deve ainda efetuar um registo adicional
sempre que receber um CTRL+C. Não é permitido o uso da função “sleep”.
Ate agora fiz isto
Código:
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
/*
void termination_handler(int signum)
{
static int i = 3;
if (i)
{
printf("i = %d\n", i);
i--;
}
else
exit(0);
}
*/
int gravarFicheiro(char * mensagem){
FILE *fp;
char linhas[25];
fp=fopen("logs.txt","w");
strcpy(linhas,mensagem);
fprintf(fp,"%s",linhas);
fclose(fp);
return 1;
}
int main()
{
/*struct sigaction action;
action.sa_handler = termination_handler;
sigemptyset(&action.sa_mask);
action.sa_flags = 0;
sigaction(SIGINT, &action, NULL);
while (1) void */
char mensagem[]="Gravouu\n";
gravarFicheiro(&mensagem);
return 0;
}
Última edição: