में एक सिस्टम() कमांड चलाने के दौरान प्रगति दिखा रहा है मेरे पास एक पर्ल स्क्रिप्ट है जो कुछ कार्य करता है, जिनमें से एक system
कमांड "tar -cvf file.tar....."
पर कॉल करना है।पर्ल
इसमें अक्सर कुछ समय लग सकता है, इसलिए मैं कॉल प्रगति पर है, जबकि #
स्क्रीन पर प्रतिबिंबित करने के लिए कमांड लाइन को प्रगति संकेतक को दोबारा गूंजना चाहूंगा।
मैं कुछ खोद रहा हूं और fork
भर में ठोकर खा रहा हूं। क्या यह जाने का सबसे अच्छा तरीका है? क्या system
कमांड को फोर्क करना संभव है, फिर थोड़ी देर लूप बनाएं जो $pid
के फोर्क द्वारा लौटाए गए स्टॉज़ पर जांच करता है?
मैंने waitpid
के संदर्भ भी देखे हैं .... मुझे लगता है कि मुझे इसका उपयोग करने की आवश्यकता है।
fork system("tar ... ")
while (forked process is still active) {
print #
sleep 1
}
क्या मैं गलत पेड़ को भड़क रहा हूं?
बहुत धन्यवाद जॉन
'फोर्क' का वापसी मूल्य बच्चे की प्रक्रिया आईडी है, अगर यह माता-पिता है, या 0 अगर यह बच्चा है, या अगर कांटा विफल हो जाता है तो अनिश्चित। Perldoc -f कांटा देखें। –