作成したリストを異なるプロセス間で使用する方法を理解するのに苦労しています。私が持っているものは次のとおりです。
FileList.h - 作成したリスト
#include "Node.h"
typedef struct FileList {
struct Node *first;
struct Node *last;
int length;
} FileList;
void fl_initialize();
void fl_add(char name[], char up[], bool status);
void fl_edit(Node *n, char up[]);
void fl_remove (char name[]);
int fl_length();
void fl_clear();
void fl_print();
void fl_print_node(Node *n);
void fl_uncheck();
bool fl_clean_unchecked();
Node* fl_get(int pos);
Node* fl_find (char name[]);
そして、私が作成するFileList.cppで
FileList fl;
そして、プロトタイプの機能を実装します。
main.cpp を簡略化します
#include "FileList.h"
int main (int argc, char *argv[]) {
int r = fork();
if (r == 0) {
fl_initialize();
call_function_that_add_list_elements();
fl_print(); //List contains elements
} else {
waitpid(r, &status, WUNTRACED | WCONTINUED);
if (WIFEXITED(status)) {
fl_print(); //The list is empty (Is other list, probably);
//another_function_that_should_keep_working_with_the_list();
}
}
}
このリストがヘッダーとして含まれるとグローバルにならないのはなぜですか?したがって、父と子のプロセスのために、どうすればグローバルにできますか?