質問編集履歴

3

fasdfadsf

2022/08/07 00:02

投稿

akiyama_pga
akiyama_pga

スコア186

test CHANGED
File without changes
test CHANGED
@@ -16,3 +16,13 @@
16
16
  追---
17
17
  1つのプログラム内でfork() すれば、socket()の返り値であるfdをグローバル変数などに入れて
18
18
  おけばそれをfork()先プロセスで使用すればいいだけだと思うのですが、全く別のプログラムという別プロセスではどのようにすればいいのでしょうか。
19
+
20
+ 追---
21
+ よく調べてみますと、
22
+ sendmsg()のSCM_RIGHTSを使用して、目的のプロセスにfd群を渡して...する方法が一般的なような感じのようでした。
23
+ これを見るに、何と言いますか、socket()で作成される構造体というのはファイルのように明確に名前がないので、ファイルのようにどこからでもアクセスは可能なものの、ファイルのように
24
+ open(名前,..)みたいに明確に目的物を指す方法が無いのではないかと思いました。
25
+ だから、全くfork()もしていないプロセスから無名のものを言い当てることができないから、
26
+ そのヒント(fd)をsocket()したプロセスから送ってやる必要があるのだと...
27
+
28
+ 何かそのような補助が無くてもすっと取れるようなファイルのような機構があってもおかしくないと思うのですが、何か理由でもあるのでしょうか...

2

dddd

2022/08/06 12:03

投稿

akiyama_pga
akiyama_pga

スコア186

test CHANGED
File without changes
test CHANGED
@@ -15,4 +15,4 @@
15
15
 
16
16
  追---
17
17
  1つのプログラム内でfork() すれば、socket()の返り値であるfdをグローバル変数などに入れて
18
- おけばそれを使用すればいいだけだと思うのですが、全く別のプログラムという別プロセスではどのようにすればいいのでしょうか。
18
+ おけばそれをfork()先プロセスで使用すればいいだけだと思うのですが、全く別のプログラムという別プロセスではどのようにすればいいのでしょうか。

1

aaaaaaaa

2022/08/06 11:59

投稿

akiyama_pga
akiyama_pga

スコア186

test CHANGED
File without changes
test CHANGED
@@ -12,3 +12,7 @@
12
12
  ファイルのように一旦作成したソケットはどこからでも使うことができるように思います。
13
13
 
14
14
  よろしくお願いいたします。
15
+
16
+ 追---
17
+ 1つのプログラム内でfork() すれば、socket()の返り値であるfdをグローバル変数などに入れて
18
+ おけばそれを使用すればいいだけだと思うのですが、全く別のプログラムという別プロセスではどのようにすればいいのでしょうか。