[완료]서로 다른 프로세스에서 파일디스크립터를 공유할수 있을까요??(linux 에서)(첨부파일참조)
글쓴이: hogi2271 / 작성시간: 목, 2007/03/22 - 5:04오후
/
/
/
A Process==========================B Process==========
=fd=open(a.txt)=======================================
=lseek(fd,100,CUR)====================================
=sleep(200);=========
=====================================get(filename),===
=offset==100=====================lseek(fd)(불가)=======
... B process에서 A process의 offset 값인 100을 가져 오고 싶습니다..
B에서는 fd 및 filename는 proc을 통하여 가져 올수 있으나..
a.txt의 파일스크립터는 A프로세스에만 있기 때문에 B에서는 fd로 연산 하는 것은 불가 하게 됩니다
(불가능이라기 보다는 의미가 없다고 해야겠죠..)
그래서 A의 offset정보를 가져 올수가 없습니다..
B에서 A의 a.txt에 대한 파일 스크립터를 볼수 있는 방법이 없을까요??
;; 첨부파일에 자세히 나와 있습니다... 궁금증이.. html에는 .. 아는게 없어서..;;
File attachments:
첨부 | 파일 크기 |
---|---|
hogi2271_01.jpg | 43.8 KB |
Forums:
http://ganadist.tistory.com/3
http://ganadist.tistory.com/306568 를 참조하세요.
당연히(?) 리눅스에서만 됩니다.SunOS와 BSD에서도 된다고 합니다;;
----
데스크탑 프로그래머를 꿈꾸는 임베디드 삽질러
A 프로세스에서 file
A 프로세스에서 file open 후에 B를 fork()로 띄우면 안되나요?
서로 전혀 관계없는 프로세스라면 우째야할지..-_-?
예제로 간단하게
예제로 간단하게 만들기 위해서 fork()를 쓴겁니다.
소스를 보시면 아시겠지만 fork()를 호출 한 다음에 파일을 연겁니다.
부모,자식 프로세스가 아니라도 상관없습니다.
----
데스크탑 프로그래머를 꿈꾸는 임베디드 삽질러
믿기지
믿기지 않는데요.
원본을 봐도 fileno() 만 전송하는 것이 전부인데, 이것만으로 별개의 프로세스사이에 fd 공유가 될까요 ?
file desctiptor 는 커널에서 각 프로세스 개별적으로 유지관리 합니다.
http://lxr.linux.no/source/include/linux/sched.h#L933
부터 추적하시면 됩니다.
유지/관리하는 구체적인 내용(contents)은
http://lxr.linux.no/source/include/linux/fs.h#L708
에서 확인할 수 있습니다.
task.files->fdt->fd 들 중의 인덱스값만 떨렁 전송해놓고 뭔가 공유되기를 바라는 것은 심하게 무리라 생각합니다.
자식 부모관계가 아니라도 상관이 없을까요???
A라는 프로세스는 제가 만든 프로세스가 아니라 ..
기존에 완성된 프로세스입니다...
A프로세스에 대해 제가(B프로세스) 할수 있는것.. 잠시 멈추어 두었다가 필요한 정보들만 빼내올수 있는것이 전부입니다.
이소스를 사용할려면..A에 sendfd()라는 함수가 호출 되어야 하는데.. 할수가 없다는것입니다..
ptrace를 이용하여 ...
B가 ... A에다가 .. 함수를 심어 둘수는 없을까요 하하 ;;;
그렇게 되면.. 문제가 간단히 해결되는데...
^^/
공유라이브러리의
공유라이브러리의 함수라면 같은 이름의 함수를 만들어서 다른 공유라이브러리로 만든 다음 LD_PRELOAD라는 환경변수에 해당 라이브러리의 경로를 설정하면 됩니다. 원래 함수가 아닌 새로 만든 라이브러리의 함수가 동작합니다.
ld.so의 man 페이지를 참조하세요.
static build면... 답 없습니다 ;;
----
데스크탑 프로그래머를 꿈꾸는 임베디드 삽질러
task_struct를 가져와서.. 정보를 빼내는 방법을 찾았습니다.
http://www.windowsecurity.com/whitepapers/File_Descriptor_Hija.html?printversion
^^/
댓글 달기