次のようNULL
に呼び出すときに、なぜそのような引数( pointer(s) )がステップバイステップで説明できますか?pthread_create
pthread_create(&id_thread1,NULL,thread1,NULL);
thread1
?のデフォルト属性になります。
pthread.h
ここでファイルが重要な要素であることはわかっています。残念ながら、その理由はわかりません。コードは私には洗練されすぎています。
前もって感謝します!
への署名pthread_create
は次のとおりです。
int pthread_create(pthread_t *thread, const pthread_attr_t *attr,
void *(*start_routine) (void *), void *arg);
2 番目の引数はpthread_attr_t*
ポインターです。これにより、オブジェクトを使用して、スケジュール ポリシーやスレッド スタック サイズなど、スレッドのさまざまな属性pthread_attr_t
を設定できます。attr
の場合NULL
、デフォルトの属性が使用されます。
4 番目の引数は、スレッドの開始時にvoid*
渡される任意のユーザー データを指すポインタです。start_routine
の場合arg
はNULL
、ヌル ポインターが渡されます。
[...] そのようなパラメータが [...] スレッド 1 のデフォルト属性になるのはなぜですか?
pthread の仕様では、 がこの特定の関数の引数(「パラメータ」ではなく)NULL
として渡される場合に、これが当てはまることが要求されるためです。