2 つ以上のプロセスがデータを共有するために使用できる Linux 共有ライブラリを作成するタスクが与えられました。ファイルハンドル、メモリスペースなどを共有しないため、無関係なプロセス間でデータを共有する方法に困惑しています。2 つ以上のプロセスが同じライブラリを介してプロセス間でデータを共有する方法を知っている人はいますか?
ライブラリ用の API も作成する必要があります。API を思いつきましたが、それを完全に実装する方法がわかりません。
API は次のようになります。
library.registerProcess(name) - registers process in library
library.createSharedData(size) - creates shared data of size (in bytes)
library.getSharedData(name) - get shared data of process by name
これで、process1 が を呼び出すことができますlibrary.registerProcess('process1')
。その後、process2 は を呼び出すことができますlibrary.registerProcess('process2')
。
これlibrary.createSharedData('1mb')
で、process1 を呼び出して、サイズが 1 MB の共有データ領域を作成できます。
Process2 は、共有データ (アクセス可能なメモリへのポインターを含むオブジェクトまたは構造体)library.getSharedData('process1')
を返す呼び出しを実行できるようになりました。process1
2 つの無関係なプロセスがこの API をどのようにやり取りして使用できるのか、私は本当に困惑しています。