/[livstidsfanger]/trunk/livstidsfanger.c
ViewVC logotype

Diff of /trunk/livstidsfanger.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 9 by trond, 2014-11-07T12:40:00Z Revision 12 by trond, 2014-11-08T12:40:52Z
# Line 3  Line 3 
3    
4  // $Ximalas$  // $Ximalas$
5    
6    #if __STDC_VERSION__ < 199901L
7    #error det er tvilsomt om du får kompilert denne kildekoden med så gammel C-kompilator
8    #endif
9    
10  #include <errno.h>  #include <errno.h>
11  #include <pthread.h>  #include <pthread.h>
12  #include <signal.h>  #include <signal.h>
# Line 39  noreturn int main(int argc, char **argv) Line 43  noreturn int main(int argc, char **argv)
43    size_t i;    size_t i;
44    pthread_t tid = pthread_self();    pthread_t tid = pthread_self();
45    
46    atexit(visResultater);    if (argc >= 0) { // Bare for å få clang til å ti stille.
47    signal(SIGINT, signalhandler);      atexit(visResultater);
48        signal(SIGINT, signalhandler);
49      } // if
50    
51  #ifdef __FreeBSD__  #ifdef __FreeBSD__
52    srandomdev();    srandomdev();
# Line 66  noreturn int main(int argc, char **argv) Line 72  noreturn int main(int argc, char **argv)
72      printf("maintråden oppretter livstidsfange %2zu\n", i + 1);      printf("maintråden oppretter livstidsfange %2zu\n", i + 1);
73    
74      if ( (errno = pthread_create(&tid, NULL, livstidsfange, (void *)i)) != 0) {      if ( (errno = pthread_create(&tid, NULL, livstidsfange, (void *)i)) != 0) {
75          fflush(stdout);
76        fprintf(stderr,        fprintf(stderr,
77                "%s: pthread_create(&tid, NULL, livstidsfange, (void *)%2zu) = %s (%d)\n",                "%s: pthread_create(&tid, NULL, livstidsfange, (void *)%2zu) = %s (%d)\n",
78                argv[0], i, strerror(errno), errno);                argv[0], i, strerror(errno), errno);
79        exit(1);        fflush(stderr);
80          _exit(1);
81      } // if      } // if
82    } // for    } // for
83    
# Line 178  void visResultater(void) Line 186  void visResultater(void)
186    
187    fflush(stderr);    fflush(stderr);
188    fflush(stdout);    fflush(stdout);
189    fflush(stderr);  
   fflush(stdout);  
190    puts("\nResultater:\n");    puts("\nResultater:\n");
191    
192    printf("bryter %u er ved avslutning vippet %s\n", 1U, brytere[0] == true ? "opp" : "ned");    printf("bryter %u er ved avslutning vippet %s\n", 1U, brytere[0] == true ? "opp" : "ned");
# Line 189  void visResultater(void) Line 196  void visResultater(void)
196    for (i = 0; i < ANTALL_LIVSTIDSFANGER; i++) {    for (i = 0; i < ANTALL_LIVSTIDSFANGER; i++) {
197      printf("livstidsfange %2zu: antall besøk: %u\n", i + 1, antallBesok[i]);      printf("livstidsfange %2zu: antall besøk: %u\n", i + 1, antallBesok[i]);
198    } // for    } // for
199      puts("");
200    
201      printf("antall livstidsfanger talt av den tellende livstidsfangen er %u\n", antallLivstidsfanger);
202    
203    fflush(stdout);    fflush(stdout);
204    fflush(stdout);    fflush(stdout);
205  } // visResultater()  } // visResultater()


Legend:
Removed lines/characters  
Changed lines/characters
  Added lines/characters

svn@ximalas.info
ViewVC Help
Powered by ViewVC 1.3.0-beta1