我正在尝试在C语言中复制“strdup”函数。这是学校习题的一部分。我想对它进行单元测试,包括
我使用的操作系统是OSX 10.8。
我已经尝试了限制堆栈大小和数据大小,然后意识到
malloc
返回NULL
并将errno
设置为ENOMEM
的情况。我使用的操作系统是OSX 10.8。
我已经尝试了限制堆栈大小和数据大小,然后意识到
malloc
在堆上分配空间。limit stacksize 0
limit datasize 0
确认限制应该已经生效:
my-host% limit
cputime unlimited
filesize unlimited
datasize 0kB
stacksize 0kB
coredumpsize 0kB
addressspace unlimited
memorylocked unlimited
maxproc 709
descriptors 256
即使将堆栈大小限制为0kB,我也可以成功运行程序。因此,我认为我的主机可能对最小堆栈大小有限制。
除了这种情况,我还能以什么方式测试 malloc
返回 NULL
的情况?