小编Sea*_*lly的帖子

使用mmap()而不是malloc()

我正在尝试完成一个使用系统调用完成的练习,并且需要为struct*分配内存.我的代码是:

myStruct * entry = (myStruct *)mmap(0, SIZEOF(myStruct), PROT_READ|PROT_WRITE,
MAP_ANONYMOUS, -1, 0);
Run Code Online (Sandbox Code Playgroud)

澄清一下,我不能使用malloc()但可以使用mmap().我在Netbeans上的Windows上没有遇到任何问题,但是现在我正在编译并在Ubuntu上从命令行运行我每次尝试访问它时都会收到"Segmentation Fault".

有没有理由说它可以在一个而不是另一个上工作,并且是以mmap()这种方式分配内存的有效方法?我担心的是我最初会为每次mmap()调用分配大块内存,现在我无法让它运行.

另外,我的mmap返回的错误是22 - 无效参数(我在编写问题时做了一些故障排除,因此错误检查不在上面的代码中).地址为0,自定义SIZEOF()函数在其他mmap参数中工作,我使用的MAP_ANONYMOUSfdoffset参数必须分别为-1和0.

这些PROT_READ|PROT_WRITE部分有问题吗?

c malloc mmap

6
推荐指数
1
解决办法
867
查看次数

从四点绘制填充形状

我有四点(图像处理后从扑克牌中取出),我想用绿色面具覆盖那张卡片的表面.所以我正在寻找一种方法来绘制一个基本上在这四个点之间有直线的形状,然后用绿色填充形状的中间.我试图使用OpenCV来完成任务,但是矩形方法只需要两个点(所以除非卡完全对齐,否则掩模会覆盖周围区域或卡片不够),fillPoly方法没有效果(尽管我可以如果需要,发布代码).有关方法的任何建议吗?

java opencv image-processing

2
推荐指数
1
解决办法
2013
查看次数

标签 统计

c ×1

image-processing ×1

java ×1

malloc ×1

mmap ×1

opencv ×1