मैं sbrk
सिस्टम कॉल के प्रलेखन देख रही है और this मिला था:महत्व
सफलता पर,
sbrk()
पिछले कार्यक्रम तोड़ देता है। (यदि ब्रेक बढ़ गया था, तो यह मान नई आवंटित स्मृति की शुरुआत के लिए एक सूचक है)। त्रुटि पर,(void *) -1
वापस कर दिया गया है, औरerrno
ENOMEM
पर सेट है।
अब,
(void *) -1
का क्या महत्व है?यह सही मेमोरी पता क्या है? (अगर यह सब करता है)
यह कैसे गारंटी है कि
(void *) -1
एक मान्य पता किsbrk()
सफलता पर से वापस किया जा सकता है?
मुझे खेद है कि अगर मैं पूरी तरह से नोब ध्वनि करता हूं, लेकिन '(void *) -1' बराबर' 0xFFFFFFFF' – tomol
@tomol, [2s पूरक] पर पढ़ें (https: //www.cs।cornell.edu/~tomf/notes/cps104/twoscomp.html) – Matt
@ टॉमोल, दूसरी दिशा में इसके बारे में सोचें, '0xFFFFFFFF + 1' कितना है? यह '0' है! ... एक बार परिवर्तनीय अनुभवों के कारण अतिप्रवाह अनुभव होता है, दिलचस्प चीजें हो सकती हैं ;-) – Myst