运营商新的有时使用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