मैं सिर्फ कर्नीघान और रिची की पुस्तक के साथ सी सीख रहा हूं; मैं चौथे अध्याय (कार्य सामग्री) की मूल बातें में हूं। दूसरे दिन मैं sleep()
समारोह के बारे में उत्सुक हो गया है, इसलिए इस तरह इसका इस्तेमाल करने की कोशिश की:printf() नींद से पहले कुछ भी प्रिंट क्यों नहीं करता है()?
#include <stdio.h>
#include <unistd.h>
int main(void)
{
printf(" I like cows.");
sleep(5);
return 0;
}
समस्या कार्यक्रम के उत्पादन में, ऐसा लगता है कि यह करता sleep()
पहले और उसके बाद printf()
, अन्य में है शब्द, यह पांच सेकंड इंतजार करता है और फिर स्ट्रिंग प्रिंट करता है। तो मैंने सोचा, शायद प्रोग्राम sleep()
पर इतना तेज़ हो जाता है कि यह printf()
को अपना काम पूरा करने की अनुमति नहीं देता है, जो स्ट्रिंग प्रिंट करता है और फिर सो जाता है।
मैं कैसे स्ट्रिंग दिखा सकते हैं और उसके बाद सोने के लिए कार्यक्रम रखा? कंपाइलर ओपनबीएसडी 4.3 में जीसीसी 3.3.5 (प्रोपोलिस) है।
पुनश्च मैं नहीं जानता कि कैसे आप यहाँ पूर्वप्रक्रमक लाइनों को सही ढंग से डाल दिया।
printf बफ़र नहीं है कॉल के बजाय
कोशिश कर सकते हैं , जिस धारा को वह लिख रहा है वह है। –
stderr आमतौर पर unbuffered है (हालांकि यह लाइन buffered हो सकता है)। –