fork() - wspólna zmienna procesu potomnego oraz rodzica

0

Jest jakiś sposób, by zmusić poniższy kod do działania?

#include <iostream>
#include <unistd.h>

using namespace std;

int main()
{
	int pid = fork();
	
	int l = true;
	int *wsk_l = &l;
	
	switch (pid)
	{
		case 0:
		cout << "Parent\n";
		cin >> *wsk_l;
		break;
		
		default:
		    while (*wsk_l == 1)
		    {
		    	sleep(3);
    		    cout << "Children\n";
		    }
		break;
		
		case -1:
		cout << "Error\n";
		break;
	}
	
	return 0;
}

Po wpisaniu 0 program powinien zakończyć działanie.

PS Jak tu siwo.

0

Musiałbyś użyć tutaj vfork żeby to zadziałało tak jak chcesz.
Jeśli używasz fork() to musisz opanować exit() i wait() żeby uzyskać jakąś wartość od potomka.

1 użytkowników online, w tym zalogowanych: 0, gości: 1