윈도우 api의 FindWindow같은 리눅스 함수는??
글쓴이: fairycat / 작성시간: 화, 2003/06/17 - 9:57오전
리눅스에서 ipc를 구현해야 하는데요. 메시지큐와 파이프 등등이 있다고만
알고 있습니다. 그런데 이러한 ipc를 통해 통신을 하려면 그전에 프로세스
핸들을 구해야 하는데 리눅스에서는 어떠한 방식으로 이 핸들 혹은 프로세
스 아이디를 구하는지 알고 싶습니다.
또 터미널 모드중에 canonical mode/ noncanonical mode의 차이점이
무엇인지요. 제가 현재 유저쉘을 하나 만들고 있는데 기존에 있는 쉘에다
명령만 전달하고 그 쉘에서의 출력 결과를 파이프를 통해서 가져오는 방식
을 쓰고 있습니다. 그런데 이렇게 하려니까 제가 만든 쉘에서 엔터를 한번
더 입력해야만 명령이 실행되더군요. 물어보니 이게 아마 canonical, non
canonical 터미널 모드의 차이일꺼라고 들었는데 무슨 관련이 있는지 감이
안잡힙니다.
또 파이프를 통해 다른 쉘의 출력 결과를 가져오다보니 파이프 용량을 초과
하는 바이트 배열을 받아들이는 경우 블록되는 경우가 있습니다. 이러한 현
상을 막으려면 어떻게 해줘야 할까요? 파이프 크기를 강제로 늘릴수는 없는
지요?
여러분의 조언 부탁드리겠습니다. 작은 힌트라도 주시면 감사하겠습니다.
Forums:
Re: 윈도우 api의 FindWindow같은 리눅스 함수는??
win32의 경우엔 윈도우를 이용한 ipc가 가능한 경우에는 분명한건 다른 한쪽에서 보낼려는 쪽의 윈도우 이름은 알고 있어야겠죠? 이것도 모른다면 ipc자체가 불가능하게 됩니다.
socket을 이용한 ipc에서도 ip주소+port번호를 이용하여 통신을 하듯이, 다른 ipc의 메커니즘에도 저마다 고유의 name을 가지게 마련입니다. 이 name은 이미 소스단계에서 알고 있어야 하겠죠.
결국 FindWindow의 역할은 socket으로 따진다면 connect와 같은 역할을 하겠죠.
답변 감사드립니다.
리눅스 시스템이 아직도 익숙해지지않아 걱정입니다. 아무튼 좋은 답변 감사
합니다. 늘 행복하세요
가이: 리여.. 확실히 너는 네지와는 다르다
록리: 위로라면 집어치세요..
가이: 위로같은게 아니다 ! 너는 네지와는 다르게 천재도 아니고 재능도 없다 하지만 너는 노력의 천재다..
- 나루토 <키시모토마사시>
댓글 달기