_mlock( ) とは? – プログラミング – Home

通知
すべてクリア

[解決済] _mlock( ) とは?


sunyopu
 sunyopu
(@sunyopu)
ゲスト
結合: 23年前
投稿: 68
Topic starter  

質問があります。

他人の作成したプログラムを調査していて、
その中で、_mlock(),_munlock()という関数が
使用されています。
MSDNで検索したり、インターネットや当HPで
検索しても情報がみつかりません。

ちなみに、VCのデバッグモードで当関数に
ステップインしてみたのですが、
EnterCriticalSection(),LeaveCriticalSection()
をコールして排他制御をしているみたいです。

この関数の意味を教えて頂きたいのですが。

使用環境は、WinXP、VC6.0です。


引用未解決
トピックタグ
ひみか
 ひみか
(@ひみか)
ゲスト
結合: 21年前
投稿: 1

返信引用
sunyopu
 sunyopu
(@sunyopu)
ゲスト
結合: 23年前
投稿: 68
Topic starter  

回答ありがとうございます。
せっかく教えていただいたのに恐縮なのですが、

このHPは自分も検索にヒットしたため
みてみたのですが、これは「HP-UX」つまりUNIXの
関数に関しての説明なのでは?

自分が知りたかったのは、Windowsに関してです。
引数も自分が調査している方は、int型が
1つのみです。


返信引用
アイススケーター
 アイススケーター
(@アイススケーター)
ゲスト
結合: 23年前
投稿: 280
 

排他処理を行ってるだけだと思いますが。
排他処理って解ってますよね。
でもそれなら「ひみか」さんが教えてくれたHPで理解できるはずだし・・・


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

ヘルプに載ってないということは、
ライブラリが内部で使っている未公開関数でしょうから、
UNIXの同じ関数から類推するか、
ソースのコメントを見て判断するか、
ソースの内容から想像するしかないでしょう。


返信引用
PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

話を聞いていると_mlock(),_munlock()という関数自体がその他人による実装なのでは?
それなら、ここで聞いても全く無意味と言うものです。
なぜなら、その作成者しか知りようがないから。
(ドキュメントに書かれていないのであれば)

debugで追えると言う事はそういうことなんではと思ったのですが、
外していたらごめんなさい。
(ちなみにインストール時にソースをインストールしていれば、
MFC等の内部まで追えると言うのは知っていますので悪しからず)


返信引用
wood
 wood
(@wood)
ゲスト
結合: 23年前
投稿: 895
 

ランタイムソースに
>mlock.c - Multi-thread locking routines
と言うのがありますね
ご自身で解析してみれ


返信引用
sunyopu
 sunyopu
(@sunyopu)
ゲスト
結合: 23年前
投稿: 68
Topic starter  

みなさん回答ありがとうございます。
意味を理解することができました。

ステップインしてソースコード(ランタイムソース)を解析してみたのですが、
どうやら、ランタイム関数内部でのみ使用する目的の
排他制御用関数みたいです。(アプリ側からコールもできる)

fprintf()とかするときに、関数内部でもっているバッファ等を
複数スレッドが同時アクセスしないように排他制御してるみたいです。

自分が解析していたプログラムがしたいことは、
どうやら、キー入力処理が終了するまでの間に、
他スレッドが行っている標準出力をさせないことのようです。
(同時に処理させない)


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました