質問

Solarisで、dbxを実行中のスタックの1つに接続したとき、__lll_lock_wait()につながるfwriteへの呼び出しが見つかりましたか?

これはどのシナリオで起こりますか? FWRITEは内部的にロックを取得しようとしますか?

役に立ちましたか?

解決

私が見た基準(C99とPOSIX)は、ロックされたまたはロック解除されたIOに関して何も言わないことをしています fwrite.

私のLinuxシステムでは、彼らはロックすることについてそれほど正確ではありません man ページ:

   For non-locking counterparts, see unlocked_stdio(3).

そして事実上、aがあります fwrite_unlocked 働き。 POSIXの標準のロック解除機能のみです getc_unlocked(), getchar_unlocked(), putc_unlocked(), 、 と putchar_unlocked().

私の解釈では、おそらく男性(3)セットのすべてのバッファリングされたIOがロックされており、ロック解除されたIOを実行するための標準化されたインターフェイスはごくわずかしかないということです。

これらのものがスレッド間でロックされていることは本当に良いことです。 stderr, 、例:

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top