質問: NULL) { fprintf(stderr, "ファイルのオープンに失敗しました.\n"); return EXIT_FAILURE; } /*途中簡略 複数スレッド起動して、各スレッドから上記log関数をコールする*/ /* ファイルクローズ */ fclose(fp); } ```
回答: ``` #include pthread_mutex_t mtx = PTHREAD_MUTEX_INITIALIZER; void log(){ pthread_mutex_lock(&mtx); //fprintf(fp, "%s : tid => %d\n", __func__, gettid()); printf("log"); pthread_mutex_unlock(&mtx); } // プログラム終了前に呼ぶ void log_finalize() { pthread_mutex_destroy(&mtx); } ```