2012-09-19 3 views
2

write(ctx, buffer, count)/read(ctx, buffer, count) 인터페이스를 제공하는 모든 작업을 수행 할 수있는 직렬화/직렬화 라이브러리 용 XS 글루 코드를 작성하려고합니다. 나는 Perl XS 코드에서 가상 파일 핸들을 사용하는 방법은 무엇입니까?

open $reader, '<', \$in; 
open $writer, '>', \$out; 

그렇게 작동하지 않는 FILE* 매핑을 사용하여 얻을 의사 파일 핸들을 사용할 수 있도록하고 싶습니다. 내가 어떤 좋은 문서를 발견하지 않았기 때문에, 나는 주위를 연주하고 다음 XS에 도착은 니펫을 :

void 
write_buf (fh, string); 
INPUT: 
PerlIO* fh; 
SV* string; 
CODE: 
STRLEN length = SvLEN (string); 
char* buf = SvPV (string, length); 
PerlIO_write (fh, buf, length); 
내가 원하는 것을 할 것 같다, 그러나 이것은 펄이 파일 핸들을 고려할 수 있습니다 모든 것을 처리하는 적절한 방법입니다

XS 코드에서?

답변

2

필요한 것을 얻었습니다. PerlIO*과 함께 작동하는 함수는 실제로 Perl 프로그램에 대한 파일 핸들로 나타나는 모든 것을 처리합니다.

+0

감사합니다. 필자가 지금 배우고있는 일들로부터 판단 할 때, 필자는 Perl의 일부 문서를 갱신함으로써 이익을 얻는 것으로 보인다. – hillu

관련 문제