क्या जीएनयू प्रोलॉग के भीतर एक ऑपरेटिंग सिस्टम सिग्नल 'जाल' (उदा। 'पकड़') का कोई तरीका है? (मैं उबंटू/लिनक्स, नवीनतम gprolog का उपयोग कर रहा हूँ)।जीएनयू-प्रोलॉग में, क्या मैं एक लिनक्स सिग्नल पकड़ सकता हूं?
मुझे लगता है कि एक लंबे समय पहले मैं WAMCC में इस दृष्टिकोण का इस्तेमाल किया है, इससे पहले कि जीएनयू Prolog में बदल गया:
:- catch(Long_Running_Goal,signal(2),write('program interrupted'))
लेकिन अगर मैं इस एक का उपयोग कर परीक्षण (दोहराने, असफल) के साथ अनंत लूप उदाहरण
के लिए,:- catch((repeat,fail),X,write(X)).
दुभाषिया Ctrl-C अब भी मुझे पता लगाने/डिबगर के लिए लेता है, और संकलित कार्यक्रम सिर्फ इस्तीफा अगर मैं इसे kill -1
साथ बीच में में, kill -2
आदि
मैंने डिफ़ॉल्ट रूप से सिग्नल को कैप्चर करने के मामले में --no-top-level
के साथ प्रोग्राम को संकलित करने का प्रयास किया है, लेकिन इससे कोई फर्क नहीं पड़ता।
एसडब्ल्यूआई-प्रोलॉग में उपयुक्त अंतर्निहित भविष्यवाणी on_signal
है जो उद्देश्य प्रदान करता है लेकिन यदि संभव हो तो मैं gprolog के साथ समाधान ढूंढ रहा हूं।
हाय - अभी भी इस पर कुछ मदद की उम्मीद है ... लेकिन इस बीच मैं टिप्पणी कर सकता हूं कि आवश्यकता का कारण समानांतर प्रसंस्करण प्रयोगात्मक दृष्टिकोण है जहां प्रोलॉग निष्पादन योग्य किसी अन्य प्रक्रिया से बाधित हो सकता है, और उस बिंदु पर यदि एक 'राज्य' मान खांसी जो वर्तमान खोज में अपनी प्रगति का प्रतिनिधित्व करता है जैसे कि उस बिंदु से प्रसंस्करण को विभाजित किया जा सकता है और अन्य प्रोसेसर को सौंपा जा सकता है। इस क्षेत्र में काम का भरपूर हिस्सा है, लेकिन मेरा दृष्टिकोण इस इंटरप्ट क्षमता पर निर्भर करता है जो * wamcc में था। – Bambam
@ बाम्ब: कोंडोर की तरह लगता है। वह राज्य कितना बड़ा है? एक निचले फीडर के रूप में, मैंने नियमित रूप से एक राज्य लिखा था। – false
मैंने अभी काम किया है जहां से 'बक्षीस' आती है ... धन्यवाद झूठी। – Bambam