Advertisement
Guest User

Untitled

a guest
Dec 10th, 2016
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.95 KB | None | 0 0
  1. void escreve_estatistica(int fim_hora,int fim_min,int fim_seg,int fim_mseg){
  2. int fd;
  3. int id_tipo;
  4. char request_aux[MAX];
  5. int ini_hora,ini_min,ini_seg,ini_mseg,var_hora,var_min,var_seg,var_mseg;
  6. int bytes=0;
  7. char a1[MAX];
  8. char a2[MAX];
  9.  
  10. printf("offset:%d\n",offset);
  11.  
  12. if ((fd = open(FILE_NAME,O_RDWR | O_CREAT,0600)) < 0){
  13. perror("Error opening file for writing");
  14. exit(EXIT_FAILURE);
  15. }
  16. printf("entour estaaaa\n");
  17. id_tipo=buffer[buffer_id-1].tipo;
  18. strcpy(request_aux,buffer[buffer_id-1].request);
  19. ini_hora=buffer[buffer_id-1].tempo.horas;
  20. ini_min=buffer[buffer_id-1].tempo.minutos;
  21. ini_seg=buffer[buffer_id-1].tempo.segundos;
  22. ini_mseg=buffer[buffer_id-1].tempo.milisegundos;
  23. strcpy(a1,"\n");
  24. strcpy(a2,":");
  25. printf("guardou vaçpres resst\n");
  26. 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);
  27. printf("bytes a escrever: %d\n",bytes);
  28.  
  29.  
  30.  
  31. if(bytes+offset>PageSize){
  32. printf("Nao ha espaço no ficheiro, munmap e mmap novamente\n");
  33. if( munmap(str,PageSize) == -1)
  34. perror("Error in munmap");
  35. if ((str = mmap(0,PageSize,PROT_READ | PROT_WRITE,MAP_SHARED,fd,0)) == MAP_FAILED) {
  36. perror("Error in mmap");
  37. exit(EXIT_FAILURE);
  38. }
  39.  
  40. }
  41.  
  42. printf("escreve no fich de escrita\n");
  43. offset += sprintf( str + offset, "%d\n", buffer[buffer_id-1].tipo);
  44. printf("tipo: <%s>\n", str);
  45. offset += sprintf(str + offset, "%s\n", buffer[buffer_id-1].request);
  46. printf("request: <%s>\n",str);
  47. 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);
  48. printf("tempo inicial: <%s>\n",str);
  49. offset += sprintf(str + offset, "%d:%d:%d:%d\n", fim_hora,fim_min,fim_seg,fim_mseg);
  50. printf("tempo final: <%s>\n",str);
  51.  
  52. //ve diferença de tempos
  53. if (ini_mseg > fim_mseg){
  54. var_mseg = 60 - ini_mseg + fim_mseg;
  55. }
  56. else{
  57. var_mseg = fim_mseg - ini_mseg;
  58. }
  59. if (ini_seg > fim_seg){
  60. var_seg = 60 - ini_seg + fim_seg;
  61. }
  62. else{
  63. var_seg = fim_seg - ini_seg;
  64. }
  65. if (ini_min > fim_min){
  66. var_min = 60 - ini_min + fim_min;
  67. }
  68. else{
  69. var_min = fim_min - ini_min;
  70. }
  71. var_hora = fim_hora - ini_hora;
  72. printf("Diferenca de tempo: %d:%d:%d:%d\n",var_hora,var_min,var_seg,var_mseg);
  73. if(id_tipo==0){
  74. printf("vai incrementar comprimido\n");
  75. count_comprimido++;
  76. count_comp_hora += var_hora;
  77. count_comp_min += var_min;
  78. count_comp_seg += var_seg;
  79. count_comp_mseg += var_mseg;
  80. }
  81. else if(id_tipo==1){
  82. printf("vai incrementar estatico\n");
  83. count_estatico++;
  84. count_est_hora += var_hora;
  85. count_est_min += var_min;
  86. count_est_seg += var_seg;
  87. count_est_mseg += var_mseg;
  88. }
  89.  
  90. printf("count estatico: %d\n", count_estatico);
  91. printf("count comprimido: %d\n", count_comprimido);
  92.  
  93.  
  94. close(fd);
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement