Windowsプログラムで、UNIXライクなマルチプロセス処理を書きたいのですが、
fork()が使えないようで、代替の方法がわかりません。
CreateProcess()というAPIはありますが、これは単に実行モジュールの呼び出し
を行う関数で、UNIXのようなfork()でプロセスを分けるものでは
ないようです。
子プロセス内部で、構築済みのDLLを複数ロードしたいのですが、
そのDLLはマルチスレッド対応になっていないため、
マルチスレッド処理はできません。
具体的にやりたいと思っていることをプログラム的に書くと、
およそ以下のような処理です。(UNIXでよくやる手法です)
-----
実行処理のメイン()
{
int p_pid[128];
for(int i=0; i<10; i++) {
switch(pid[i]=fork()){
case 0: // 子プロセスとしての処理
子プロセスが呼び出す関数();
exit(0);
case -1:
break;
default:
break;
}
}
}
void 子プロセスが呼び出す関数()
{
LoadLiblary() と GetProcAddress() で、DLLを動的にロードし、
DLL内のAPIを呼び出す。
DLLがマルチスレッド対応でなくても、この関数は各々が別プロセスとして
複数同時実行されるので、問題なく処理できるはず。
}
-----
この処理は、Windowsでは無理なのでしょうか?
もしできるなら、Windowsで用意されているランタイムライブラリかAPIを
教えていただけないでしょうか?
よろしくお願いします。
No.2
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- Excel(エクセル) Indirect関数について、Formulatextで抽出した数式を参照したい。 1 2022/12/15 11:16
- その他(学校・勉強) この中で間違ってある説明はありますか?詳しい方に教えていただきたいです。 A. 1つのプログラムが複 2 2023/07/14 01:15
- C言語・C++・C# スタックフレームの消滅 6 2023/05/20 12:33
- JavaScript カラーミーショップのsectionループ内で、[引数][戻り値]ありの関数的な処理を行いたいです。 1 2022/05/07 19:39
- Visual Basic(VBA) vba Sleep関数について教えてください 1 2023/01/18 10:18
- ドライブ・ストレージ HDDの代替処理保留中のセクタ数と回復不能セクタ数について 7 2023/06/06 13:15
- 日本株 SBI証券HYPER SBI 2のエラー 1 2023/01/31 13:38
- ノートパソコン .dllファイルがありませんと表示される 5 2023/04/30 03:03
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バックグラウンドのプロセスの...
-
シェルで親プロセス終了時に子...
-
execvpでのcdコマンドについて。
-
起動しているプロセスの確認
-
Linuxのchdir(カレントディレク...
-
セマフォとmutexの違いは?
-
怪しいプロセス教えてください。
-
VB6.0 SHELLで起動...
-
EXE間でデータを受け渡し時のka...
-
JSPからJNIを実行しabortすると...
-
fork()の挙動について質問させ...
-
IEの次のような場合の違いにつ...
-
子プロセスの利点
-
Macターミナルで実行中のプログ...
-
DoEvents関数って何?
-
PICのPIN変化割り込みに...
-
緯度、経度の 10進法と 60進法...
-
逆コンパイルと逆アセンブルの...
-
Mac 乗数の入力方法
-
【C言語】if文内の演算子の優先...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バックグラウンドのプロセスの...
-
explorer.exeが異様にメモリを食う
-
タスクマネージャーのプロセス...
-
プロセスのアタッチ・デタッチ...
-
C#でのbatファイル実行結果取得
-
VB6.0 SHELLで起動...
-
ADOでアクセスのレコードに...
-
Windowsでのfork方法
-
非表示になったエクセルは?
-
共有メモリの同時アクセスにつ...
-
プロセスIDからウィンドウハ...
-
プロセスIDの取得方法について
-
C++のプログラムをバックグラウ...
-
C++でシェルを起動
-
Linuxでのスレッド間メッセージ...
-
OSPFでプロセスを分ける意義に...
-
怪しいプロセス教えてください。
-
Process.Startの戻り値を後で取得
-
SendMessageが失敗するときがある
-
ウィンドウのタイトルからプロ...
おすすめ情報