簡體   English   中英

跨平台內存分配器sbrk / virtualalloc

[英]Cross-platform memory allocator sbrk/virtualalloc

我想知道是否有一個比malloc / free低一級的跨平台分配器。

例如,我想要在Linux中簡單地調用sbrk,而在Windows中簡單地調用VirtualAlloc(可能還有兩個類似的syscall,但這只是一個例子)。

我對所討論的功能不熟悉,但:

#if defined (__WIN32__)
  #define F(X) VirtualAlloc(X)
#elif defined (__LINUX__) /* or whatever linux's define is */
  #define F(X) sbrk(X)
#endif

不知道語法是否為100%(我是宏和c語言的新手),但一般的想法應該可行。

C給您mallocfree ,C ++除了C提供的內容外,還添加了newnew[]deletedelete[]以及放置形式。

僅此而已,您就超出了適當語言的范圍。 您要么在OS領域涉足,要么在匯編器中默默無聞。 毫無疑問,這種事情是跨平台的。

我想知道如果存在這樣的分配器將會有什么好處?

您可以實現自己的malloc / free而不用擔心底層操作系統

並且您想要另一個跨平台的解決方案來實現這一點和另一個...您明白了。 這不是一個可行的方案。

我最近發現了這篇文章:

http://www.genesys-e.org/jwalter//mix4win.htm

它基本上使用VirtualAlloc在Windows下實現sbrk()。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM