http://linux.die.net/man/3/sprintf और http://www.cplusplus.com/reference/cstdio/sprintf/sprintf()
के अनुसार और परिवार सफलता पर लिखे गए पात्रों की संख्या लौटाता है। विफलता पर, एक नकारात्मक मूल्य वापस कर दिया जाता है। मुझे लगता है कि प्रारूप स्ट्रिंग खराब होने पर एक त्रुटि हो सकती है, इसलिए ऋणात्मक वापसी मान malloc()
त्रुटि के अलावा कुछ और इंगित कर सकता है। क्या errno
यह इंगित करने के लिए सेट हो गया है कि त्रुटि क्या थी?sprintf() ऋणात्मक वापसी मूल्य और errno
उत्तर
सी ++ सी को defers और सी की आवश्यकता है या sprintf()
और परिवार के विवरण में errno
का उल्लेख नहीं करता
POSIX (हालांकि कुछ प्रारूप विनिर्देशक के लिए, इन कार्यों mbrtowc()
कॉल करने के लिए, EILSEQ
errno
में सेट कर सकते हैं जो परिभाषित कर रहे हैं) आवश्यकता है कि errno सेट है:
तो एक आउटपुट त्रुटि आई थी, इन कार्यों के लिए एक नकारात्मक मान और त्रुटि इंगित करने के लिए
errno
सेट करेगा।
EILSEQ, EINVAL, EBADF, ENOMEM, EOVERFLOW स्पष्ट रूप से उल्लेख कर रहे हैं: http://pubs.opengroup.org/onlinepubs/9699919799/functions/fprintf.html
मैं हमेशा "इसे आज़माने" विधि की तरह जब मैं इस तरह एक प्रश्न है।
char buffer[50];
int n, localerr = 0;
n = sprintf(buffer, "%s", "hello");
localerr = errno; // ensure printf doesn't mess with the result
printf("%d chars\nerrno: %d\nstrerror:%s\n", n, localerr, strerror(localerr));
> 5 chars
errno: 0
strerror: Success
n = sprintf(buffer, NULL, NULL);
localerr = errno;
printf("%d chars\nerrno: %d\nstrerror:%s\n", n, localerr, strerror(localerr));
> -1 chars
errno: 22
strerror: Invalid argument
ऐसा लगता है कि यह लिनक्स पर जीसीसी के साथ संकलन करते समय सेट हो जाता है। तो यह अच्छा डेटा है, और man page में errno
के लिए यह उल्लेख करता है कि printf()
(उसी परिवार को sprintf()
) errno
(नीचे दिए गए उदाहरणों में) बदल सकता है।
- 1. अपवाद और वापसी मूल्य
- 2. PHP वापसी (मूल्य); बनाम वापसी मूल्य;
- 3. वापसी मूल्य
- 4. SPRINTF?
- 5. ggplot2 और ऋणात्मक मानों
- 6. sprintf()
- 7. sprintf और सी
- 8. snprintf और sprintf स्पष्टीकरण
- 9. sprintf
- 10. वापसी मूल्य देखें?
- 11. Lua os.execute वापसी मूल्य
- 12. वापसी मूल्य Mybatis
- 13. वापसी मूल्य जावास्क्रिप्ट UIWebView
- 14. jQuery AJAX वापसी मूल्य
- 15. oci_bind_by_name truncates मूल्य में वापसी
- 16. जावा कोड से वापसी मूल्य
- 17. फ़्रेड से अप्रत्याशित वापसी मूल्य()
- 18. कम्बोबॉक्स चयनित मूल्य वापसी DataRowView
- 19. वापसी मूल्य अनुकूलन - - सी ++ नाशक
- 20. पीडीओ संग्रहीत प्रक्रिया वापसी मूल्य
- 21. अपवाद बनाम विशेष वापसी मूल्य
- 22. ऋणात्मक संख्याओं
- 23. 'sprintf': सी
- 24. MySQL: डेटाबेस छोड़ने त्रुटि (errno 13; errno 17; errno 39)
- 25. पायथन एक ऋणात्मक टाइमज़ोन मूल्य क्यों लौटाता है?
- 26. बैश स्क्रिप्ट में matlab से वापसी मूल्य कैसे प्राप्त करें?
- 27. एके और ऋणात्मक लुकहेड त्रुटियां देकर
- 28. वापसी मूल्य अनुकूलन और लौटने वाले अस्थायी को समझना - सी ++
- 29. PHP: फ़ंक्शन से वापसी मूल्य और इसे सीधे गूंजें?
- 30. PHP अंतराल() और मंजिल() वापसी मूल्य जो बहुत कम है?
सबूत के लिए +1, लेकिन कब्बी के उत्तर में अधिक ठोस दस्तावेज मिला। – cpburnz
ध्यान दें कि "इसे आज़माएं" विधि कार्यान्वयन पर निर्भर करता है मानक मानक और मानक विभिन्न व्यवहार के लिए कमरे की अनुमति नहीं देता है। कभी-कभी यह विधि आपको गुमराह कर सकती है ... – skyking