लिनक्स/सी/पाइप के माध्यम से पिंग के वास्तविक समय उत्पादन कैप्चरिंग:लिनक्स पाइप: popen
मैं कैसे popen (या इसी तरह की प्रणाली कॉल) का उपयोग पिंग कमांड के उत्पादन पर कब्जा कर सकते हैं। वर्तमान में पॉपिंग तब तक प्रतीक्षा करेगी जब तक कि पिंग समाप्त न हो जाए। फिर आउटपुट एक साथ डंप किया जाएगा।
छद्म कोड:
fp= popen("ping x.x.x.x", "r");
while(!feof(pFp))
{
if(fgets(fp ...) // <==currently the code blocks here until ping finishes in popen
{
printf(...real time ping output here);
}
}
सी या सी ++? आपका कोड सी – ThiefMaster
जैसा दिखता है आप शायद बफरिंग से पीड़ित हैं। अधिक नियंत्रण के लिए पाइप (2) का प्रयोग करें। – cdarke
@cdarke: मदद नहीं करेगा। समस्या यह है कि पिंग अपने आउटपुट को बफर कर रहा है। मैं निश्चित रूप से यह पिंग में एक बग पर विचार करेंगे। यदि यह जानता है कि इसमें एक सेकंड तक (जब यह सोता है) के लिए कोई और आउटपुट नहीं होगा तो इसे सोने से पहले अपने आउटपुट को फ्लश करना चाहिए ... –