के साथ कॉल सी फ़ंक्शन मैं एक अलग स्टैक में सी फ़ंक्शन को कॉल करने का एक तरीका ढूंढ रहा हूं, यानी वर्तमान स्टैक पॉइंटर को सहेजें, स्टैक पॉइंटर को किसी दूसरे स्थान पर सेट करें, फ़ंक्शन को कॉल करें और पुरानी स्टैक पॉइंटर को लौटाते समय पुनर्स्थापित करें।विभिन्न स्टैक पॉइंटर (जीसीसी)
इसका उद्देश्य प्रोग्रामिंग भाषा के लिए एक हल्के थ्रेडिंग सिस्टम है। थ्रेड बहुत छोटे ढेर पर काम करेंगे, जांचें कि अधिक स्टैक की आवश्यकता है और गतिशील रूप से इसका आकार बदलना है। ऐसा इसलिए है कि बहुत सारी स्मृति बर्बाद किए बिना हजारों धागे आवंटित किए जा सकते हैं। सी कोड में कॉल करते समय एक छोटे स्टैक का उपयोग करना सुरक्षित नहीं है, क्योंकि सी कोड को जांच और आकार बदलने के बारे में पता नहीं है, इसलिए मैं केवल एक बड़े pthread स्टैक का उपयोग करना चाहता हूं जिसका उपयोग केवल सी को कॉल करने के लिए किया जाता है (हल्के धागे के बीच साझा किया जाता है एक ही pthread)।
अब मैं असेंबली कोड स्टब्स लिख सकता हूं जो ठीक काम करेगा, लेकिन मुझे आश्चर्य हुआ कि ऐसा करने का एक बेहतर तरीका है, जैसे जीसीसी एक्सटेंशन या लाइब्रेरी जो पहले से ही लागू करती है। यदि नहीं, तो मुझे लगता है कि मेरे सिर को एबीआई और असेंबली भाषा मैनुअल में दफनाया जाएगा ;-) मैं केवल आलस्य से यह पूछता हूं और पहिया को फिर से शुरू नहीं करना चाहता हूं।
क्लोन सिस्कल का उपयोग करके आप अपने स्वयं के "धागे" को व्यक्तिगत स्टैक्स के साथ कार्यान्वित कर सकते हैं। यदि आप libc wrapper के बजाय प्रत्यक्ष सिस्टम कॉल का उपयोग करते हैं, तो यह बहुत अधिक कांटा की तरह काम करता है सिवाय इसके कि आप निर्दिष्ट कर सकते हैं कि कौन से संसाधन और नामस्थान साझा किए गए हैं। – technosaurus