C에서 공유변수를 사용하고 싶은데요..
핫팬츠
초기
오류는 없어요;
a.c 와 b.c 를 컴파일 하여 a.exe 와 b.exe 가 생성됩니다. 이 파일 2개를 실행 시켜 a 프로그램에서 사용하는변수가 0인지
1인지 확인하여 b 에서 어떤 기능 ( switch 와 같은.. ) 을 사용하게 하고 싶은데 어떻게 해야하는지 모르겠어요..
함께 컴파일 한다면 extern 변수를 사용하면 되는걸 알고 있지만 다른 실행파일을 만들려고 하니
전혀 모르겠네요..
도와주세요~~
-
Hotpants
좋은 말씀들 감사합니다. 지금 배우는 과정이 소켓 프로그래밍을 배우기 전 단계로서, OSI 7계층의
Phisical, Datalink, Network 계층을 개념적으로 ( 모든 기능을 구현하는것이 아니라.) 구현 해보는
부분을 배우고 있습니다. 아직 소켓 프로그래밍을 배우지 않았기에 프로새스간 통신을 쓰는 것은
이 문제가 의도하는 답이라고 말하기 어려울거 같습니다.[곰처럼] 님이 말씀해주신 파일을 이용한
공유도 생각해 보았긴 한데 힌트로 말이 -
촉촉한 초코칩
가장 대표적인 프로세스간 통신은 \소켓\ 이라고 해서 네트웍을 말합니다. 또 다른 측면에서 프로세스간 통신 및 쓰레딩 계념이 들어가는 경우, \동기화\ 라는 개념이 대두됩니다. 간단히 말해 데이터를 공유하는 데 이쪽에서 쓰고 있거나 쓰는 중간에 건들면 안되니까 어떤 방비를 해 두는 것이죠.
정리하여, 중요한 두 가지 키워드만 적어보겠습니다. 중요 키워드는 \프로세스간 통신(PPC)\ 과 \동기화(Synchronization)\ 입니다. -
오빤테앵겨
공유 메모리라는 것이 있습니다. segment 어쩌구 해서 셋팅 가능합니다.. 하지만, 21세기다 보니.. 이런 구닥다리 방식은 비추고요, 있다는 것 정도 검색해서 알아두시고 다른 분들이 말씀해 주신 것처럼 \프로세스 통신\ 을 사용하시기 바랍니다. 프로세스 통신은 Win32 API 정복이라는 책 보시면 자세히 나오는데요, 물론 윈도우에 관련된 부분입니다만, 여러 종류가 있다는 것이 중요합니다. 다른분들이 지적하신 파일을 이용한 통신도 포함되고요, 윈도
-
해길
우선 fork와 exec에 대해서 알아 보시고,
MFC라면 ::CreateProcess 인가 하는놈을 알아 보세요. -
하늘
저 같은 경우에는 간단하게 할 때는 텍스트 파일을 이용해서 데이터를 공유 했었습니다.
물론 사이트수다님이 말씀 하신 프로세스 통신을 사용하는 것이 좋겠죠. -
펴라
덧붙이자면, 제가 알고 있는 범위에서는, 프로세스간 메모리영역을 독립적으로 가지기 때문에, (스택이나 힙등등) 변수를 공유한다는 말 자체가 메모리를 공유한다는 의미로 불가능합니다.
-
비사벌
다른 실행파일을 만든다는 것은 2개의 독립된 프로세스를 생성한다는 의미입니다. 그렇게 때문에 프로세스간 통신이 필요하게됩니다. 프로세스간 통신을 위한 CALL을 찾아보세요..