pthread プログラミングは初めてなので、このコードを理解するのに苦労しています。私が理解していることから、N 個のスレッドを作成し、スレッド番号のみを出力するrun関数を実行します。何か不足していますか?
この特定のケースで、printf よりも snprintf (バッファ付き) を使用する利点はありますか? このプログラムをさらに改善することはできますか?
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
static int N = 5;
static void* run(void *arg)
{
int *i = (int *) arg;
char buf[123];
snprintf(buf, sizeof(buf), "thread %d", *i);
return buf;
}
int main(int argc, char *argv[])
{
int i;
pthread_t *pt = NULL;
for (i = 0; i < N; i++) {
pthread_create(pt, NULL, run, &i);
}
return EXIT_SUCCESS;
}