리눅스 프로그램간 데이터 전송?
글쓴이: foryun / 작성시간: 화, 2015/12/15 - 3:15오후
안녕하세요 ~ 리눅스 초초보입니다.
일단 C 프로그램 2개가 동시에 구동이 되어야 합니다.
그리고 그 프로그램간 값(변수값, 혹은 string 데이터)을 교환 할 수 있는 방법을 알고 싶습니다.
예를 들면 hello1프로그램에서 저장하고 있는 string값을 hello2 프로그램에서 사용 할 수 있도록 하고 싶어요.
어떤 식으로 구현을 해야하는지 감이 잘 오지 않습니다.
제가 생각하고 있는 방법은 디바이스드라이버(?)를 구현하듯이 모듈을 띄워 놓고 데이터를 전송해야하나 고민중입니다. 드라이버 구현해 본 적이 없어 아직 구체적으로 알지는 못합니다.
가능하면 쉬운 방법으로 구현하고 싶어요~ 쉽고 구체적으로 알려 주시면 더 감사하겠습니당~
<요약>
질문1)프로그램 2개를 띄우는 방법?
질문2) 2개의 프로그램간 데이터를 교환하는 방법?
Forums:
Inter Process
질문자가 물어보는 것은 유닉스 시절부터 이슈가 되었던 것으로
보통 Inter Process Communication(IPC)이라고 합니다. 한번 찾아보시구요.
간단한 해법은
1) 간단한 경우: TCP/UDP loopback socket OR Unix Domain socket OR Pipe와 같은 것
2) 타 프로세스 내부에 존재하는 함수를 호출해야된다면: dbus등의 Remote Procedure Call(RPC) 라이브러리 이용
3) DB 이용
참고해보세요.
http://kldp.org/node/153735
- kldp 검색
- kldp 위키
https://wiki.kldp.org/wiki.php
- 네이버
- 네이버 책
- 구글
- UNIX System Programming SVR 4
http://www.olc.kr/
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
...
최대한 간단한 걸 원하신다면 pipe/fork/exec 하시면 될 것 같은데요. 여기저기 설명이 있겠지만 특히 Stevens의 Advanced Programming in the Unix Environment 보시면 자세히 나와있습니다. (이 책은 한권 사서 첨부터 끝까지 읽어보시는 것을 강력히 추천합니다.)
프로그램 2개를 띄우는 방법?은 따로 기술할게 없을
프로그램 2개를 띄우는 방법?은 따로 기술할게 없을 것 같고
프로세스간 데이터 교환하는 방법 관련해서 검색어 두고 갑니다.
* shared memory
* shmget
* mmap
소곤소곤
댓글 달기