Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.82 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <unistd.h>
  4. #include <fcntl.h>
  5. #include <sys/stat.h>
  6. #include <sys/types.h>
  7. #include <string.h>
  8.  
  9.  
  10.  
  11.  
  12. #define BUFFSIZE 1024
  13.  
  14.  
  15.  
  16.  
  17. int n;
  18. int file;
  19. char buff[BUFFSIZE];
  20.  
  21. struct student{
  22.  
  23. char *name;
  24. int grades[5];
  25.  
  26. } students[100];
  27.  
  28. int size=0;
  29.  
  30. int main()
  31. {
  32.  
  33. if((file = open("file.txt",O_RDONLY)) <0)
  34. {
  35. printf("ERROR OPENING THE FILE ");
  36. return 1;
  37. }
  38.  
  39. while((n = read(file,buff,BUFFSIZE)))
  40. {
  41. char newBuff[BUFFSIZE];
  42. strcpy(newBuff,buff);
  43.  
  44. char *p = strtok(newBuff,":,.\n");
  45.  
  46. int index = 0;
  47. while(p)
  48. {
  49. //printf("%s\n",p);
  50.  
  51.  
  52. if(index== 0)
  53. {
  54. students[size].name = malloc(sizeof(char) * (strlen(p)+1));
  55. strcpy(students[size].name,p);
  56. ++index;
  57.  
  58. }
  59. else
  60. {
  61.  
  62. int grade = atoi(p);
  63. // printf("%d\n",grade);
  64. students[size].grades[index-1] =grade;
  65.  
  66. ++index;
  67. }
  68.  
  69. if(index == 6)
  70. {
  71. index = 0;
  72. size++;
  73. }
  74.  
  75. p = strtok(NULL,":,.\n");
  76.  
  77. }
  78.  
  79. }
  80.  
  81.  
  82. pid_t pid = fork();
  83.  
  84. if(pid < 0)
  85. {
  86. printf("ERROR WHILE FORKING");
  87. return -1;
  88.  
  89. }
  90. else if(pid == 0)
  91. {
  92. ///CHILD
  93.  
  94. for(int i=0;i<size;i++)
  95. {
  96. double avg = 0;
  97. for(int j=0;j<5;j++)
  98. {
  99. avg += students[i].grades[j];
  100. }
  101. avg = avg /5;
  102.  
  103. printf("The stundet: %s has the avg: %f",students[i].name,avg);
  104.  
  105. }
  106.  
  107.  
  108.  
  109. }
  110. else
  111. {
  112.  
  113.  
  114. }
  115.  
  116.  
  117.  
  118. return 0;
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement