草庐IT

png_malloc

全部标签

c - malloc.c 中如何/在哪里使用 sbrk?

我在AdvancedUnixProgramming(以及其他几本书)中读到Linuxmalloc()使用Linux系统调用sbrk()来请求内存操作系统。我正在查看glibcmalloc.c代码,我可以在注释中看到很多提及sbrk()的地方,但没有在代码中直接提及。malloc()从操作系统请求内存时,如何/在哪里引用/使用sbrk()?(这可能是我对如何从C运行时库进行系统调用的普遍误解。如果是这样,我很想知道它们是如何进行的??) 最佳答案 Glibc的malloc.c通过调用存储在__morecore全局函数指针中的函数来请求

c - Linux 上的 Malloc 没有过度使用

我如何在Linux上分配内存而不过度使用,以便malloc在没有可用内存且进程不会在访问时随机崩溃时实际返回NULL?我对malloc工作原理的理解:分配器检查空闲列表是否有空闲内存。如果是,则分配内存。如果否,则从内核分配新页面。这就是过度使用可能发生的地方。然后返回新的内存。因此,如果有一种方法可以从内核中获取由物理内存立即支持的内存,分配器可以使用它而不是过度使用页面,如果内核拒绝提供,则返回NULL更多内存。有没有办法做到这一点?更新:我知道这不能完全保护进程免受OOMkiller的攻击,因为如果它的分数不好,它仍然会在内存不足的情况下被杀死,但这不是我担心的。更新2:Nomi

c - Linux 上的 Malloc 没有过度使用

我如何在Linux上分配内存而不过度使用,以便malloc在没有可用内存且进程不会在访问时随机崩溃时实际返回NULL?我对malloc工作原理的理解:分配器检查空闲列表是否有空闲内存。如果是,则分配内存。如果否,则从内核分配新页面。这就是过度使用可能发生的地方。然后返回新的内存。因此,如果有一种方法可以从内核中获取由物理内存立即支持的内存,分配器可以使用它而不是过度使用页面,如果内核拒绝提供,则返回NULL更多内存。有没有办法做到这一点?更新:我知道这不能完全保护进程免受OOMkiller的攻击,因为如果它的分数不好,它仍然会在内存不足的情况下被杀死,但这不是我担心的。更新2:Nomi

linux - 你能推荐一个很好的 linux 调试 malloc 库吗?

你能推荐一个很好的linux调试malloc库吗?我知道那里有很多选择,我只需要知道人们实际使用哪些库来解决现实生活中的问题。谢谢!编辑:我知道Valgrind,但有时性能真的太低了。 最佳答案 Valgrind.:-)它不是malloc库,但是,它非常擅长查找内存管理和内存使用错误。 关于linux-你能推荐一个很好的linux调试malloc库吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/

linux - 你能推荐一个很好的 linux 调试 malloc 库吗?

你能推荐一个很好的linux调试malloc库吗?我知道那里有很多选择,我只需要知道人们实际使用哪些库来解决现实生活中的问题。谢谢!编辑:我知道Valgrind,但有时性能真的太低了。 最佳答案 Valgrind.:-)它不是malloc库,但是,它非常擅长查找内存管理和内存使用错误。 关于linux-你能推荐一个很好的linux调试malloc库吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/

c - malloc(及其同类)返回的内存块是否初始化为零?

我写了一个代码来测试压力测试Linux和Windows操作系统的内存管理。为了进一步测试,我继续检查malloc()返回的内存中存在哪些值。返回的值都是0(零)。我已经阅读了malloc的手册页,在Windows和Linux上都进行了检查,但是我无法找出这种行为的原因。根据联机帮助页Themalloc()functionallocatessizebytesandreturnsapointertotheallocatedmemory.Thememoryisnotinitialized.要清除内存段,必须手动使用memset()。#include#include#include#inclu

c - malloc(及其同类)返回的内存块是否初始化为零?

我写了一个代码来测试压力测试Linux和Windows操作系统的内存管理。为了进一步测试,我继续检查malloc()返回的内存中存在哪些值。返回的值都是0(零)。我已经阅读了malloc的手册页,在Windows和Linux上都进行了检查,但是我无法找出这种行为的原因。根据联机帮助页Themalloc()functionallocatessizebytesandreturnsapointertotheallocatedmemory.Thememoryisnotinitialized.要清除内存段,必须手动使用memset()。#include#include#include#inclu

c++ - 将 PNG(包括 Alpha)与原始 ARGB 缓冲区混合的 C/C++ 库

我有一个带有编码alphachannel的PNG,我想将其与内存中交错存储的原始ARGB图像混合。PNG与图像缓冲区的分辨率不同,需要相应地调整大小(最好使用插值)。虽然我明白手动执行此操作并不是特别困难(一旦PNG图像被加载到适当的结构中),但我希望找到一个好的开源图像处理库来为我完成这项工作。我看过一些,包括:libGDlibPNG打开简历ImageMagickCxImage英特尔集成性能原语(IPP)但似乎没有一个能够处理加载PNG、调整PNG图像大小、将alpha混合到图像数据中以及处理ARGB格式(与RGBA相对)的所有要求。性能是一个问题,因此减少对图像数据的传递将是有益的

c++ - 将 PNG(包括 Alpha)与原始 ARGB 缓冲区混合的 C/C++ 库

我有一个带有编码alphachannel的PNG,我想将其与内存中交错存储的原始ARGB图像混合。PNG与图像缓冲区的分辨率不同,需要相应地调整大小(最好使用插值)。虽然我明白手动执行此操作并不是特别困难(一旦PNG图像被加载到适当的结构中),但我希望找到一个好的开源图像处理库来为我完成这项工作。我看过一些,包括:libGDlibPNG打开简历ImageMagickCxImage英特尔集成性能原语(IPP)但似乎没有一个能够处理加载PNG、调整PNG图像大小、将alpha混合到图像数据中以及处理ARGB格式(与RGBA相对)的所有要求。性能是一个问题,因此减少对图像数据的传递将是有益的

linux - 如何基于 .png 文件创建像素图?

我有一些.png图标我想在我想为fluxbox创建的自定义主题中用于窗口按钮。我的操作系统是ArchLinux。但是,fluxbox与pixmaps一起工作。问题是否可以根据.png格式文件创建像素图? 最佳答案 您可以使用ImageMagick中的convert程序:xiawi@here:~/Images$convertlena.pnglena.xpmxiawi@here:~/Images$filelena.xpmlena.xpm:Xpixmapimage,ASCIItext,withverylonglines