Как передать определение локальной сборки в глобальную переменную? ( С++)
Мне нужен глобальный массив C++.
Вот фрагмент его декларации
// has to be global int fork_socket_fd[2]; //, child; extern char fork_buf[1024]; // common message buffer int main() {
Я определяю его как локальный и пытаюсь присвоить результаты глобальным...
Не может сделать компилятор счастлив.
Либо несколько определений, либо никаких определений...
Может быть, мне нужно разделить сокет-пару от вилки и иметь две отдельные функции.
Процессы форка будут выполняться в "цикле". Но сначала мне нужно решить глобальную проблему.
Мне бы не помешала помощь , кроме RTFM.
Что я уже пробовал:
//extern int fork_socket_fd[2]; void socketfork() { int local_fork_socket_fd[2]; static const int parentsocket = 0; static const int childsocket = 1; pid_t pid; /* 1. call socketpair ... */ socketpair(PF_LOCAL, SOCK_STREAM, 0, local_fork_socket_fd); is this correct way to assign local definition to global ??? fork_socket_fd[0] = local_fork_socket_fd[0]; will this code use the global array after it is defined correctly? /* 2. call fork ... */ pid = fork(); if (pid == 0) { /* 2.1 if fork returned zero, you are the child */ close(fork_socket_fd[parentsocket]); /* Close the parent file descriptor */ child(fork_socket_fd[childsocket]); } else { /* 2.2 ... you are the parent */ close(fork_socket_fd[childsocket]); /* Close the child file descriptor */ parent(fork_socket_fd[parentsocket]); } exit(0); /* do everything in the parent and child functions */ }