संबंधित कोड:तो मॉलोक किसी भी syscall का आह्वान नहीं करता है?
write(-1, "test", sizeof("test"));
void * p = malloc(1024);
void * p2 = malloc(510);
write(-1, "hi", sizeof("hi"));
संबंधित strace उत्पादन:
write(4294967295, "test\0", 5) = -1 EBADF (Bad file descriptor)
brk(0) = 0x601000
brk(0x622000) = 0x622000
write(4294967295, "hi\0", 3) = -1 EBADF (Bad file descriptor)
मैं हैरान इतनी कम स्तर आपरेशन syscall शामिल नहीं करता है?
मुझे समझ नहीं आता कि तुम क्या कह रहे हैं की बड़ी मात्रा में आवंटित करने के लिए चाहते हैं। 'मॉलोक' कॉल 'ब्रैक' सिस्कल का आह्वान करता है। – Gabe
परीक्षण के माध्यम से मैंने पाया कि 'brk'' malloc' द्वारा उत्पन्न नहीं किया गया है, क्योंकि यदि मैं 'malloc' की संख्या में वृद्धि करता हूं, तो 'brk' में वृद्धि नहीं होती है। – cpuer
क्या आप कह रहे हैं कि यदि आप 'मॉलोक' कॉल को हटाते हैं, तो 'ब्रैक' कॉल ट्रेस से गायब हो जाती हैं? – Gabe