私のCの知識は若いので、許してください:) 本当に2つの質問、
pthread_t *threadsArray
次のコードを、 ではなくを正しく利用するコードに変換するにはどうすればよいthreadsArray[MAXCON]
ですか?正当な理由はありますか?明示的な配列の使用を避け、可能な場合はポインター定義の配列を使用するようにすべきだと聞いたことがあります。
pthread_t threadsArray[MAXCON];
int k;
for (k = 0; k < MAXCON; k++) {
fprintf(stderr, "Make %d\n", k);
int *connfd = malloc(sizeof(int));
*connfd = accept(fd, (struct sockaddr *) &cliaddr, &cliaddrlen);
if (*connfd == -1) {
perror("Unable to accept connection");
return 1;
}
fprintf(stderr, "Waited\n");
pthread_t thread;
pthread_create(&thread, NULL, readWriteToClient, connfd);
threadsArray[k] = thread;
}
for(k = 0; k < MAXCON; k++){
fprintf(stderr,"Join %d\n",k);
pthread_t thread = threadsArray[k];
pthread_join(thread, NULL);
}