我试图解决我的应用程序在activemq-cpp-3.4.0库中遇到的问题,并且达到了逐行跟踪以查看出错的地方的程度。应用程序问题本身与这个问题无关;我遇到了一些我不懂的代码,我希望有人能解释一下是怎么回事。
跟踪,我发现以下代码(注意:这在技术上属于apr库):
alloc_socket(new, cont);
/* For right now, we are not using socket groups. We may later.
* No flags to use when creating a socket, so use 0 for that parameter as well.
*/
(*new)->socketdes = socket(family, type, protocol);
if ((*new)->socketdes == INVALID_SOCKET) {
return apr_get_netos_error();
}
我被alloc_socket(new, cont)
弄糊涂了,但我特别感兴趣的是(*new)调用发生了什么。这是否分配了this
的另一个实例?如果是这样,通过再次使用(*new)
来检查存储的socketdes
值是否错误,因为这会创建另一个单独的实例?还是我完全偏离了轨道?
这是C代码。在C语言中,new
是标识符,而不是关键字。