के साथ पुरानी लाइब्रेरी का काम करना मैं एक एक्सएस शुरुआती हूं और मैं एक मौजूदा एक्सएस मॉड्यूल को बदलने की सोच रहा हूं जो 15+ वर्षीय अंतर्निहित सी लाइब्रेरी का उपयोग करता है (वास्तव में मॉड्यूल मूल रूप से केवल गोंद है यह पुस्तकालय)।पर्ल एक्सएस और पर्लियो
open($fh, '<', \$string);
और फिर XS गोंद जहां पुस्तकालय FILE
उम्मीद कर रही है करने के लिए $fh
पारित: समस्या यह है कि मैं की तरह PerlIO स्ट्रिंग प्रवंचना का उपयोग करने में सक्षम होना चाहते हैं। समस्या यह है कि XS है:
int
_parse (entry_ref, filename, file, preserve=FALSE)
SV * entry_ref;
char * filename;
FILE * file;
boolean preserve;
और मुझे लगता है कि यह होने की जरूरत है:
PerlIO * file;
बेशक यह काम नहीं करता है के रूप में वहाँ है कि तुलना में यह करने के लिए अधिक होना चाहिए। फिर
AST * bt_parse_entry (FILE * infile,
char * filename,
btshort options,
boolean * status)
{
AST * entry_ast = NULL;
static int * err_counts = NULL;
static FILE * prev_file = NULL;
साथ FILE
प्रकार: जब मैं पुस्तकालय में _parse
कोड को देखो, उस में समाप्त होता है। अब मूल प्रश्न के साथ शुरू करना है - यह पुस्तकालय को बदलने के बिना भी संभव है; यानी, क्या मैं XS को बदलकर स्ट्रिंग्स पर्लियो व्यवहार से छद्म-फ़ाइलहेडल प्राप्त कर सकता हूं?