fork() 로 자식 프로세스를 생성한 후에,
자식프로세스에서 배열에 1을 더하고,
부모프로세스에서 그것을 출력한다.
.. 인 프로그램에서, 이상하게도 자식 프로세스에서 연산한 값이 부모프로세스에게 전달되지 않았다.
-->
fork() 로 프로세스를 생성하면, 자식 프로세스와 부모 프로세스 두개의 프로세스를 제어하게 된다. 이때 각각 프로세스는 변수를 복사 한 것처럼 관리되어 지는데,
한 프로세스에서 (자식 프로세스에서 라고 가정할 때) 배열의 값을 수정하고 다른 프로세스에서 그것을 출력한다면 각자 다른 변수인데 값만 같을 뿐이므로,
다른 프로세스에서 출력한 값이 변했을 리가 없다.
따라서 변수를 수정하고 나서 그 값을 공유하고 싶다면 다른 방법을 사용해야 하는데,
첫 번째로 공유메모리를 사용하는 방법이 있다.
두 번째로 소켓을 이용하는 방법이 있고, (소켓 생성시에 PF_INET 을 인자로 준다던가)
세 번째로 큐를 이용하는 방법이 있다. (이번에 찾으면서 처음 알게됨)
네 번째로 파이프를 이용하는 방법이 있다.
각 방법에 대한 예제는 나중에 올리도록 하겠다.
'전공 과목 시험정리 > C 프로그래밍' 카테고리의 다른 글
C++ 에서의 소켓프로그래밍 (0) | 2015.04.25 |
---|---|
Fate 서버 소스 (미완성) (0) | 2015.04.25 |
웹에서 서버정보 파싱 (0) | 2015.04.25 |
쓰레드 프로그램 (0) | 2015.04.25 |
알고리즘 대결 서버 소스 (0) | 2015.04.25 |