2012-03-28 9 views
12

मैं एक प्रक्रिया proc-open उपयोग कर बनाई गई है, लेकिन खिड़कियों के तहत stream-select काम नहीं करता है पर proc_open। जो मैं प्राप्त करने की कोशिश कर रहा हूं वह stdout और stderr से पढ़ने के लिए है, जबकि stdin पर लिखने के साथ-साथ यह सुनिश्चित किया जाता है कि आउटपुट इनपुट के साथ मेल खाया जा सके। क्या इस कमी को दूर करने के लिए खिड़कियों के लिए कोई कामकाज है?पीएचपी खिड़कियों

+2

मुझे लगता है कि केवल एक चीज आप कर सकते हैं दुर्भाग्य से, गैर अवरुद्ध मोड में अपने पाइप की स्थापना की और उन्हें मैन्युअल रूप से जाँच करने के लिए है। – netcoder

+1

@netcoder - मैंने यह कोशिश की है। 'Stream_set_blocking' झूठी :-(रिटर्न –

+0

stderr और stdout गैर अवरुद्ध करने के लिए सेट नहीं किया जा सकता। आप वास्तव में प्राप्त करने के लिए कोशिश कर रहे हैं? कुछ कोड है? चयन यहाँ आवश्यक नहीं हो सकता। – Pierre

उत्तर

3

आप क्या धारा का चयन करें Windows पर के साथ आप के लिए काम नहीं कर रहा पर बहुत विस्तृत नहीं हैं। हालांकि, यह धारा-चयन का उपयोग करने के तरीके पर एक कामकाजी उदाहरण है। मैंने विंडोज XP पर PHP 5.4 के साथ सफलतापूर्वक इसे चलाया।

संपादित करें: Uhhmmm .. लगता है जैसे कि यह गैर काम कुछ और यहाँ का परीक्षण सब के बाद ... Sry, .. :)

संपादित फिर से था: तो

, मैंने किया था इस पर कुछ और प्रयोग, लेकिन असफल।

हो सकता है कि तुम सिर्फ प्रक्रियाओं को एक दूसरे के लिए टीसीपी/यूडीपी/आईपी बात देना चाहिए?

एक और तरीका आगे (यदि आप अभी भी अपनी प्रक्रिया में stdout/stdin/stderr का उपयोग करना चाहते हैं) फ़ाइल हैंडलर के साथ proc_open का उपयोग करना हो सकता है, इसलिए आपकी प्रक्रिया फाइलों को लिख रही है, और फिर यूनिक्स 'inotify के समान कुछ उपयोग करें, फ़ाइलों को बदलने का पता लगाने के लिए PHP DOTNET क्लास: Is there anything like inotify on Windows? के साथ इस सामग्री को लोड करना ...? बस एक विचार ...

या हो सकता है एक यूनिक्स की तरह ओएस को बदलने? ;) ठीक है, यह आज रात मेरे लिए है। शुभ रात्रि

+1

आपकी परीक्षा में 'stream_select' ple बेकार लगता है। यह वास्तव में 'stdout' और' stderr' पाइप से पढ़ता है बिना वास्तव में '$ read_streams' में वापस लौटाए बिना देखता है। यह अगर बच्चे प्रक्रिया में व्यस्त है ब्लॉक सकता है (या जब आप 'stdout' पर डेटा प्रतीक्षा कर रहे हैं बच्चे' stderr' में लिखा था) – galymzhan

+0

हाँ, कुछ परीक्षण के बाद आप सही होने लगते हैं। उम ... –

+1

@AlfredGodoy - समस्या यह है कि विंडोज़ 'चयन' काम नहीं करता है। लेकिन यूनिक्स/लिनक्स यह काम करता प्रतीत होता है। कोड के प्रयास के लिए खेद है जो काम नहीं करता है। –

संबंधित मुद्दे