運營商新的有時使用malloc,一個在那裏可以找到它的具體實現在嵌入式系統中,運行說Raspbian實現。從哪裏可以找到C++中operator new的確切實現?
回答
一個在哪裏可以找到C++新的確切實施操作的?
你會發現在C++標準庫的源代碼中。下面是從libstdc++一個:
_GLIBCXX_WEAK_DEFINITION void *
operator new (std::size_t sz) _GLIBCXX_THROW (std::bad_alloc)
{
void *p;
/* malloc (0) is unpredictable; avoid it. */
if (sz == 0)
sz = 1;
while (__builtin_expect ((p = malloc (sz)) == 0, false))
{
new_handler handler = std::get_new_handler();
if (! handler)
_GLIBCXX_THROW_OR_ABORT(bad_alloc());
handler();
}
return p;
}
正如你所看到的,正是在這種情況下,與malloc
實現。
在嵌入式系統
的標準庫的嵌入式系統的
通常獨立,因此沒有必要提供malloc
或new
在所有。
運行說Raspbian。
Raspbian是一個幾乎完全成熟的操作系統。它會默認使用libstdC++。
取決於你所說的「嵌入」。我的猜測是,如果你計算所有不同的嵌入式設備,你會發現大多數運行Linux或* BSD。 (也就是說,按型號計算,而不是個別設備的數量)。 –
@MartinBonner是的,我想對於「嵌入」沒有單獨的硬定義。如果從嵌入到較大實體的計算機是一個「嵌入式系統」(這是一個完全精細的定義)的角度來看,那麼從編程的角度來看,關於嵌入式系統的問題變得毫無意義,因爲嵌入式系統與非嵌入式的。 – user2079303
同意Martin Bonner。嵌入式系統的定義本質上是一個計算機系統,它在更大的系統中提供了一套專用的功能。它與操作系統無關。有和沒有操作系統的嵌入式系統,並且很多運行基於Linux或BSD的操作系統,僅僅是因爲這樣的操作系統很容易以低成本,可配置的方式獲得,並且提供了許多有用的功能,使得它們易於集成系統在更大的系統內。它是嵌入式系統的用法,不包含Raspberry Pi或不包含 – Peter
- 1. 哪裏可以找到stdio.h的實現?
- 2. 哪裏可以找到「time.h」的實現?
- 3. @dynamic實現哪裏可以找到它?
- 4. 哪裏可以找到NestedScrollView?
- 5. 哪裏可以找到sprintf的現有實現?
- 6. 我在哪裏可以找到真實的FFT和iFFT實現?
- 7. 哪裏可以找到fillPatternId?
- 8. 我在哪裏可以找到最小邊界框算法的c/C++實現?
- 9. 哪裏可以找到MyGeneration.dOOdads.dll
- 10. 我在哪裏可以找到Lucene的通配符實現?
- 11. 我在哪裏可以找到.Net類的實現細節?
- 12. 我在哪裏可以找到atof的.net實現?
- 13. 我在哪裏可以找到javax.validation的實現。*?
- 14. 我在哪裏可以找到高效的R-Tree實現?
- 15. Git - 我在哪裏可以找到實現.gitignore的源代碼
- 16. 我在哪裏可以找到jquery.param的實現代碼?
- 17. 哪裏可以找到均衡的樹實現?
- 18. 我在哪裏可以找到Visual Studio的C99數學實現?
- 19. 我在哪裏可以找到std :: string的實現
- 20. C#在哪裏可以找到System.Windows.Controls.dll
- 21. 哪裏可以找到tcadsdll.dll?
- 22. 哪裏可以找到CabWiz.exe
- 23. 哪裏可以找到
- 24. 哪裏可以找到VBSQL.VBX?
- 25. 哪裏可以找到ipseccmd.exe?
- 26. 哪裏可以找到org.eclipse.jface.nl_de?
- 27. 我在哪裏可以找到Java本機方法實現?
- 28. 我在哪裏可以找到一個RPC實現:boost + protobuf
- 29. 我在哪裏可以找到解釋Objective-C如何實現的文檔
- 30. Android:在哪裏可以找到RadioButton Drawable?
對於用戶空間代碼,它是這樣的:https://sourceware.org/git/?p=glibc.git;a=tree;f=malloc;h=1103943adc88e23a879cea14b55d730d06516b11;hb=HEAD,它和運行時一樣在大多數Linux發行版上。 – nos