Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void escreve_estatistica(int fim_hora,int fim_min,int fim_seg,int fim_mseg){
- int fd;
- int id_tipo;
- char request_aux[MAX];
- int ini_hora,ini_min,ini_seg,ini_mseg,var_hora,var_min,var_seg,var_mseg;
- int bytes=0;
- char a1[MAX];
- char a2[MAX];
- printf("offset:%d\n",offset);
- if ((fd = open(FILE_NAME,O_RDWR | O_CREAT,0600)) < 0){
- perror("Error opening file for writing");
- exit(EXIT_FAILURE);
- }
- printf("entour estaaaa\n");
- id_tipo=buffer[buffer_id-1].tipo;
- strcpy(request_aux,buffer[buffer_id-1].request);
- ini_hora=buffer[buffer_id-1].tempo.horas;
- ini_min=buffer[buffer_id-1].tempo.minutos;
- ini_seg=buffer[buffer_id-1].tempo.segundos;
- ini_mseg=buffer[buffer_id-1].tempo.milisegundos;
- strcpy(a1,"\n");
- strcpy(a2,":");
- printf("guardou vaçpres resst\n");
- bytes+= sizeof(id_tipo)+sizeof(request_aux)+sizeof(ini_hora)+sizeof(ini_min)+sizeof(ini_seg)+sizeof(ini_mseg)+4*sizeof(a1)+6*sizeof(a2)+sizeof(fim_hora)+sizeof(fim_min)+sizeof(fim_seg)+sizeof(fim_mseg);
- printf("bytes a escrever: %d\n",bytes);
- if(bytes+offset>PageSize){
- printf("Nao ha espaço no ficheiro, munmap e mmap novamente\n");
- if( munmap(str,PageSize) == -1)
- perror("Error in munmap");
- if ((str = mmap(0,PageSize,PROT_READ | PROT_WRITE,MAP_SHARED,fd,0)) == MAP_FAILED) {
- perror("Error in mmap");
- exit(EXIT_FAILURE);
- }
- }
- printf("escreve no fich de escrita\n");
- offset += sprintf( str + offset, "%d\n", buffer[buffer_id-1].tipo);
- printf("tipo: <%s>\n", str);
- offset += sprintf(str + offset, "%s\n", buffer[buffer_id-1].request);
- printf("request: <%s>\n",str);
- offset += sprintf(str + offset, "%d:%d:%d:%d\n", buffer[buffer_id-1].tempo.horas,buffer[buffer_id-1].tempo.minutos,buffer[buffer_id-1].tempo.segundos,buffer[buffer_id-1].tempo.milisegundos);
- printf("tempo inicial: <%s>\n",str);
- offset += sprintf(str + offset, "%d:%d:%d:%d\n", fim_hora,fim_min,fim_seg,fim_mseg);
- printf("tempo final: <%s>\n",str);
- //ve diferença de tempos
- if (ini_mseg > fim_mseg){
- var_mseg = 60 - ini_mseg + fim_mseg;
- }
- else{
- var_mseg = fim_mseg - ini_mseg;
- }
- if (ini_seg > fim_seg){
- var_seg = 60 - ini_seg + fim_seg;
- }
- else{
- var_seg = fim_seg - ini_seg;
- }
- if (ini_min > fim_min){
- var_min = 60 - ini_min + fim_min;
- }
- else{
- var_min = fim_min - ini_min;
- }
- var_hora = fim_hora - ini_hora;
- printf("Diferenca de tempo: %d:%d:%d:%d\n",var_hora,var_min,var_seg,var_mseg);
- if(id_tipo==0){
- printf("vai incrementar comprimido\n");
- count_comprimido++;
- count_comp_hora += var_hora;
- count_comp_min += var_min;
- count_comp_seg += var_seg;
- count_comp_mseg += var_mseg;
- }
- else if(id_tipo==1){
- printf("vai incrementar estatico\n");
- count_estatico++;
- count_est_hora += var_hora;
- count_est_min += var_min;
- count_est_seg += var_seg;
- count_est_mseg += var_mseg;
- }
- printf("count estatico: %d\n", count_estatico);
- printf("count comprimido: %d\n", count_comprimido);
- close(fd);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement