में सी प्रोग्राम आउटपुट को पुनर्निर्देशित करने में समस्या मैंने सी में एक प्रोग्राम कोड किया है जो प्रिंटफ का उपयोग करके stdout पर संदेश भेजता है और मुझे आउटपुट को एक फ़ाइल (बैश से चलने) में रीडायरेक्ट करने में समस्या हो रही है।बैश
मैं कोशिश की है:
./program argument >> program.out
./program argument > program.out
./program >> program.out argument
./program > program.out argument
प्रत्येक मामले में, फ़ाइल program.out बनाई गई है, लेकिन यह खाली रहता है। बाद निष्पादन समाप्त होता है फ़ाइल आकार 0.
है अगर मैं पुनर्निर्देशन छोड़ देते हैं जब कार्यक्रम को क्रियान्वित करने:
./program argument
फिर, printf का उपयोग कर stdout करने के लिए भेजे गए सभी संदेशों टर्मिनल में दिखाए जाते हैं।
मेरे पास अन्य सी प्रोग्राम हैं जिनके लिए मुझे आउटपुट को इस तरह रीडायरेक्ट करने में कोई समस्या नहीं है। क्या इसे प्रोग्राम के साथ ही करना है? बहस के साथ गुजर रहा है? समस्या को कहां देखना चाहिए?
सी कार्यक्रम के बारे में कुछ विवरण:
- यह
- stdin यह बीएसडी इंटरनेट डोमेन सॉकेट
- यह का उपयोग करता है POSIX धागे
- यह के लिए एक विशेष हैंडलर समारोह प्रदान करती है का उपयोग करता है से कुछ भी नहीं पढ़ता सिग्नेशन
- का उपयोग करके SIGINT सिग्नल यह stdout के लिए कई नई लाइनें भेजता है (आप में से उन लोगों के लिए मुझे फ्लश करना चाहिए)
कुछ कोड:
int main(int argc, char** argv)
{
printf("Execution started\n");
do
{
/* lots of printf here */
} while (1);
/* Code never reached */
pthread_exit(EXIT_SUCCESS);
}
उत्पादन पुनर्निर्देशन के बिना एक ही कार्यक्रम स्क्रीन के लिए किसी भी उत्पादन का उत्पादन करता है? – womble
मैंने इसे स्पष्ट करने के लिए प्रश्न संपादित किया है। धन्यवाद – mmutilva