関連コード:mallocはシステムコールを呼び出さないのですか?
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)
私はそのような低レベルの操作は、システムコールを伴わない驚いていますか?
を割り当てます。 'malloc'呼び出しは' brk'システムコールを呼び出します。 – Gabe
ビアテストでは、 'malloc'の数を増やせば' brk'が増えないので、 'malloc'で' brk'が生成されないことがわかりました。 – cpuer
'malloc'呼び出しを削除すると、' brk'呼び出しはトレースから消えてしまいますか? – Gabe