Ich habe in den letzten zwei Wochen danach gegoogelt und keine Antwort bekommen. Dies ist, was ich habe:
-
Ein übergeordneter Prozess, der eine Struktur erstellt
myStruct
das ist im Grunde eine verknüpfte Liste mit Zeigern (wenn dies ein großes Problem ist, kann ich akzeptieren, um eine feste Größe Array stattdessen verwenden). -
Eine feste Anzahl von Kindprozessen, die mit
fork()
die einen Lese-/Schreibzugriff auf die vom Elternteil erstellte Struktur (oder das Array) benötigen.
Ich weiß nicht, was ich tun muss, um die Variable myStruct
zwischen Prozessen geteilt werden.
Ich habe versucht, das Problem mit SysV IPC-Funktionen zu lösen, wie shmget()
, shmat()
usw..., um meine Variable im gemeinsamen Speicher zuzuweisen, aber ich weiß nicht, wie man mit ungültigen Speicherzeigern arbeitet, um die Werte in myStruct zu lesen/schreiben.
Idealerweise würde ich gerne die Punktnotation verwenden können (myStruct.node)->attribute = value
in jedem Prozess, ohne sich mit Zeigern beschäftigen zu müssen, da ich nicht weiß, wie meine Struktur im Speicher organisiert ist.
Ist das möglich? Könnte jemand von Ihnen bitte helfen? Jede Hilfe ist WIRKLICH willkommen.
Weitere Anmerkung: Ich weiß, dass die Verwendung von Threads, Pipes, Sockets oder ähnlichem viel einfacher wäre, aber diese Arbeit ist für akademische Zwecke, für die ich das Vorhandensein mehrerer unabhängiger Prozesse simulieren muss.