
スレッドを作成する際に、
属性としてPTHREAD_CREATE_DETACHEDを指定したいのですが、
その際pthread_attr_tをどのように設定したらよいかわかりません。
現在書いているコードは
pthread pt;
pthread_attr_t* attr;
pthread_attr_init(attr);
pthread_attr_setdetachstate(attr,PTHREAD_CREATE_DETACHED);
if (pthread_create(&pt,attr,NULL,NULL) != 0){
perror("thread_create()");
exit(1);
}
上記のようなものです。(スレッド作成部分のattr以外の
引数は適当です)
これでコンパイルすると
警告: 変数 attr には値が代入されていません.
と、警告が出てしまいます。
これを解消するにはどう修正したらよいのでしょうか?

No.1ベストアンサー
- 回答日時:
以下のようにしてください。
---------------------------
pthread pt;
pthread_attr_t attr; // *をとる
pthread_attr_init(&attr); // &を付加
pthread_attr_setdetachstate(&attr,PTHREAD_CREATE_DETACHED); // &を付加
if (pthread_create(&pt,&attr,NULL,NULL) != 0){ //&を付加
perror("thread_create()");
exit(1);
}
No.2
- 回答日時:
とりあえず
> pthread_attr_t* attr;
> pthread_attr_init(attr);
は
< pthread_attr_t attr;
< pthread_attr_init(&attr);
ですね。後の行も対応するように変更します。
pthread_attr_initは引数で指定した領域に書込みしますので割当て済みの領域を渡さなければいけません。
ありがとうございます。
理由まで教えていただき、よくわかりました。
答えていただいたお二方に
20ptずつ入れたいところですが、、
タッチの差ということでrinkun様には
10pt入れさせていただきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マルチスレッドの実行順序の制御
-
CWnd::OnTimerのスレッドの取得
-
C言語である関数への同時アクセ...
-
マルチスレッドプログラミング...
-
VC++スレッドの正しい終了のさ...
-
スレッドの監視方法について
-
WaitForSingleObjectの使い方に...
-
別スレッドのデータを受信できない
-
スレッドの安全な終了のさせ方
-
マルチスレッドプログラム
-
WaitForMultipleObjectのイベン...
-
スレッドの終了はどうやるんで...
-
マルチスレッド内のループについて
-
マルチスレッドプログラムでメ...
-
excelvbaでCreateThreadの動作
-
Macターミナルで実行中のプログ...
-
TCP/IP通信時のサーバーからの受信
-
VBSの処理中一旦処理を止めて再...
-
C# シリアル通信でデータ受信...
-
メッセージボックスのボタン名変更
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スレッドの監視方法について
-
VC++スレッドの正しい終了のさ...
-
複数スレッドを動作させるのに...
-
スレッドの安全な終了のさせ方
-
WaitForSingleObjectの使い方に...
-
スレッドにて同一メモリの書き...
-
Windows上で、シグナル(SIGTERM...
-
同一スレッドで、ロックをかけ...
-
マルチスレッド内のループについて
-
sleep関数とは?
-
スレッドの終了はどうやるんで...
-
メインスレッドのPostMessageと...
-
CWnd::OnTimerのスレッドの取得
-
C言語である関数への同時アクセ...
-
別スレッドのデータを受信できない
-
VB2005 シリアル通信のClose処理
-
pthreadの使い方
-
ユーザーインターフェイスの一...
-
Linuxでスレッド優先度って変え...
-
win32 スレッドのハンドルついて
おすすめ情報