मैं फ़ाइल में एक शून्य समाप्त नहीं किया गया चार सरणी आउटपुट करने का प्रयास कर रहा था।सी ++ गैर नल समाप्त हो गया चार सरणी आउटपुट
वास्तविक बात यह है कि, मैं पैकेट प्राप्त कर रहा हूं और फिर अपने क्षेत्रों को प्रिंट कर रहा हूं।
अब इन फ़ील्ड को निरस्त नहीं किया गया है, उदाहरण के लिए, डेटा सेगमेंट जिसमें 512 का आकार है लेकिन पूरी तरह से कब्जा नहीं किया जा सकता है या नहीं।
जब मैं एक फ़ाइल में यह डेटा लिखता हूं तो मैं सरल < < ओवरलोडेड फ़ंक्शन का उपयोग कर रहा हूं जो वास्तविक डेटा के बारे में कुछ भी नहीं जानता है और केवल डेटा सेगमेंट को समाप्त करने के लिए दिखता है।
तो, मैं आउटपुट फ़ंक्शन को केवल विशिष्ट बाइट्स लिखने के लिए कैसे कह सकता हूं?
enter code here
bytescopied = strncpy(dest, src, maxbytes);
if (bytescopied < 0) { // indicates no bytes copied, parameter error
throw(fit); // error handler stuff here
} else if (bytescopied == maxbytes) {
dest[maxbytes-1] = '\0'; // force null terminator
}
आपकी दूसरी कॉल में, पूरा दूसरा पैरामीटर सादे पुराने 'स्ट्रलेन' को कॉल करने का एक चौराहे वाला तरीका है। लेकिन उस स्थिति में, आप पूरे कथन के लिए और अधिक बेवकूफ तरीके का उपयोग कर सकते हैं: 'stream << buffer'। –
संख्या स्ट्रेलन अधिकतम बाइट्स के बाद नहीं रुक जाएगी। –
'strnlen' होगा। एक strnlen कॉल बहुत साफ दिखता है: 'strnlen (बफर, maxbytes) '। पॉइंटर्स या कुछ भी – gnud