C ++ linux при возврате из указателя waitpid () изменения значений в программе - PullRequest
0 голосов
/ 15 апреля 2020

при выполнении следующего кода:

class A{
    public:
    int val;
}

class B{
    public:
    static std::vector<A> list;
}

std::vector<A> B::list;

class C{
    public:
    void foo(){
        A* a = &(B::list.back());
        a->val = 2;
        pid_t pid = <known pid of a running process> // this process was created by this program using fork() execv()
        std::cout << "test 1 "<<a->val << endl;
        waitpid(pid ,NULL ,WUNTRACED); // wait for this process to get signal such as SIGSTOP
        std::cout << "test 2 "<<a->val << endl;
    }
}

результат теста 1 отличается от результата теста 2. что может быть причиной этого?

...