草庐IT

png_malloc

全部标签

c - 如果 malloc 通过 gdb 返回 NULL,如何设置条件断点

示例源代码:#include#include#include#defineGIGABYTE1024*1024*1024intmain(void){void*foo;intresult;foo=(void*)malloc(GIGABYTE*5);result=errno;if(foo!=NULL){return2;}else{fprintf(stderr,"ERROR:%d\n",result);return1;}return0;}问题:如果malloc()返回,如何指示gdb(#gdb-silent./huge_malloc)停止/暂停执行>0x0,不检查foo是否为0x0

c - 使用 malloc 分配页面时发生内存泄漏

考虑以下C代码,它创建100,000个4KB大小的页面,然后释放99,999个页面,最后释放最后一个页面:#include#include#defineNUM_PAGES100000intmain(){void*pages[NUM_PAGES];inti;for(i=0;i如果你编译运行它并监控进程的内存使用情况,你可以看到在第一次getchar之前内存使用量达到了大约400MB(当内存分配给100,000页时),然后即使在99,999页被取消分配后(在第二个getchar之后)它仍然保持不变,最后,当最后一页被取消分配时它下降到1MB。所以,我的问题是为什么会这样?为什么只有当所有页

linux - 将 swf 渲染为 png 或其他图像格式

我如何在Linux上将swf渲染为图像文件?我需要能够将其他swf加载到该swf中并运行actionscript代码。甚至可以在linux上使用吗?我需要从PHP执行此操作,如果我必须使用命令行工具也没关系。 最佳答案 swfrender来自swftools适用于基本的SWF文件。swfdec-thumbnailer来自swfdec-gnome虽然它只获取swf的第一帧,但仍然有效。要使用swfdec从swf获取任何帧,请参阅以下邮件列表中的C代码片段post.gnash来自gnash也适用gnash-s--screenshotla

c - 哪些 C 标准库函数在底层使用 malloc

我想知道哪些C标准库函数在底层使用了malloc和free。在我看来,printf似乎会使用malloc,但是当我用valgrind测试程序时,我注意到printf调用未使用malloc分配任何内存。怎么来的?那么它是如何管理内存的呢? 最佳答案 通常,C99标准中唯一可能使用malloc()的例程是标准I/O函数(在中,其中文件结构和它使用的缓冲区通常由malloc()分配。一些语言环境处理可能使用动态内存。所有其他例程都不需要一般动态内存分配。现在,是否有任何正式记录?不,我认为不是。没有一揽子限制'库中的函数不得使用mallo

linux - 内核中的 malloc

当我尝试在内核模块中使用malloc时,我收到来自编译器的错误消息。我的代码:res=(ListNode*)malloc(sizeof(ListNode));编译器错误信息是:/root/ex3/ex3mod.c:491:error:implicitdeclarationoffunction‘malloc’我该怎么办? 最佳答案 使用kmalloc或vmalloc相反(另见this) 关于linux-内核中的malloc,我们在StackOverflow上找到一个类似的问题:

Python 值错误 : embedded null byte when reading png file from bash pipe

fromPILimportImagefromsubprocessimportPopen,PIPEscr=Image.open(Popen.communicate(Popen(['import','-w','0x02a00001','png:-'],stdout=PIPE))[0])错误:File"/usr/lib/python3/dist-packages/PIL/Image.py",line2258,inopenfp=builtins.open(filename,"rb")ValueError:embeddednullbyte 最佳答案

linux - 如何使用linux命令将jpg文件转换为png文件? + 难度 = 子文件夹

我想把几个jpg文件转换成png文件。据我所知,可以使用这个命令mogrify-formatpng*.*我有一个问题,我有很多子文件夹。假设a是我的主文件夹,b,c和d是子文件夹。图像位于子文件夹中。如何在不手动打开每个文件夹的情况下转换所有图像?->我想编写一个命令,当我在文件夹a中时,它可以工作,但对子文件夹中的所有文件都有效。 最佳答案 假设您在文件夹a中,以下内容可能适合您find.-name"*.jpg"-execmogrify-formatpng{}\;您可以使用find命令获取所有子文件夹中的所有jpg文件,并将您的命

c - 为什么 malloc 不是 "using up"我电脑上的内存?

所以我有这个分配256MB内存的程序,在用户按下ENTER后它释放内存并终止。#include#includeintmain(void){char*p,s[2];p=malloc(256*1024*1024);if(p==NULL)exit(1);printf("Allocated");fgets(s,2,stdin);free(p);return0;}我多次运行这个程序并在后台运行它们,直到没有足够的内存可以分配为止。然而,这永远不会发生。我运行了一个linuxtop命令,即使在多次运行这个程序之后,可用内存也从未减少近256MB。但是,另一方面,如果我使用calloc而不是mall

malloc 和 free 的代码

我在哪里可以找到我的gcc编译器目前正在使用的malloc代码?我实际上想编写自己的malloc函数,它与原来的有点不同。我知道我可以使用hooks等,但我想看看真正的代码。 最佳答案 malloc的POSIX接口(interface)是definedhere.如果您想了解GNU/Linux中的C库(glibc)是如何实现malloc的,请前往http://ftp.gnu.org/gnu/glibc/获取源代码。或浏览thegitrepository看看themalloc/malloc.cfile.还有MemoryAllocator

c - malloc/free 是 libc 提供的系统调用还是库例程?

如果malloc/free在libc中作为库例程实现,那么它是在sbrk系统调用或mmap系统调用之上实现的,还是其他?一般来说,sys/syscall.h中声明的函数是否包含目标机器中的所有系统调用? 最佳答案 经常,malloc和free使用较低级别的虚拟内存分配服务并一次分配多个页面(甚至兆字节),使用systemcalls喜欢mmap和munmap(也许还有sbrk)。经常malloc更喜欢重用以前freed相关的内存空间。大多数malloc实现对“大”和“小”分配等使用各种不同的策略......注意virtualaddre