[過去ログ]
マルチスレッドプログラミング相談室 (986レス)
マルチスレッドプログラミング相談室 http://toro.5ch.net/test/read.cgi/tech/997345868/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
183: デフォルトの名無しさん [] 01/11/16 00:17 便乗で質問させてください。 時刻の取得⇒文字列として表示、にlocaltime, ctimeを使おうと思ったのですが スレッド安全ではないために、localtime_r, ctime_rで記述しました。 ところがコンパイルは通るものの、実行すると上記箇所にて coreを吐いて死んでしまいます。 (localtime, ctimeで記述時の動作は、期待通りです) Solaris8, gcc295を使用しているのですが、 "*_r"関数には、何かしらの制限等があるのでしょうか? http://toro.5ch.net/test/read.cgi/tech/997345868/183
185: デフォルトの名無しさん [sage] 01/11/16 00:34 >>183は単にメモリを確保してないと思われ。 http://toro.5ch.net/test/read.cgi/tech/997345868/185
187: デフォルトの名無しさん [sage] 01/11/16 02:30 >>183 とりあえず「スレッドセーフ」って読んだほうが良いかと...。 >>179 どういう構造でmulti-threadが実装されているのか理解するまでは 愚直に危うそうな資源を排他するのをおすすめします。 「同時に同じ領域へアクセスしなければ特に排他処理をしなくても問題ない」 という表現に危うさを感じます。 たとえば、排他をしないでどうやって同時でないことを保証しましょう? http://toro.5ch.net/test/read.cgi/tech/997345868/187
192: 183 [sage] 01/11/16 10:07 皆様のご指摘どおり、メモリを確保していないために 起きた現象でした。 メモリ確保をすることによって無事解決をしました。 ありがとうございます。 メモリを確保する必要があるのですね、知りませんでした。 その必要性は、以下のような解釈でよろしいですよね。。。 localtimeは、関数内static領域を保持することを前提に設計された関数であり localtime_rは代替関数である。この関数はライブラリ内部の共通バッファを 使用しないことによってスレッドセーフを実現しているため、当然 自前でメモリを確保する必要性がある。 http://toro.5ch.net/test/read.cgi/tech/997345868/192
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.048s