在 OS X 上的 ifconfig.h 的 ifadder 结构中,我可以将ifa_data转换为什么?
in ifconfig.h's ifadder struct on OS X, what can I cast ifa_data to?
我得到了我的ifadder struct,看起来像这样:
struct ifaddrs {
struct ifaddrs *ifa_next;
char *ifa_name;
unsigned int ifa_flags;
struct sockaddr *ifa_addr;
struct sockaddr *ifa_netmask;
struct sockaddr *ifa_dstaddr;
void *ifa_data;
};
我也可以施放void *ifa_data?我想看看里面。我正在使用C/C (使用C 编译器编译(。我已经看到人们将其施加给rtnl_link_stats
,但是该结构似乎不是OS X的一部分。
也在这里加成问题,每当我在ifaddrs struct中访问sockaddr时,sockaddr的sa_data成员总是空白/空。有什么想法?
谢谢!
对我来说这有效:
...
if (ifa->ifa_data != NULL) {
struct rtnl_link_stats *stats = (rtnl_link_stats*)ifa->ifa_data;
cout << "packets received: " << stats->rx_packets << endl;
cout << "packets sent: " << stats->tx_packets << endl;
cout << "bytes received: " << stats->rx_bytes << endl;
cout << "bytes sent: " << stats->tx_bytes << endl;
}
...
相关文章:
- 函数向量_指针有不同的原型,我可以构建一个吗
- 我可以使用 g++ 进行三种比较 (<=>) 吗?
- 我可以使用条件运算符初始化C风格的字符串文字吗
- 我可以信任表示整数的浮点或双精度来保持精度吗
- 我可以将一个用clang c++11编译的对象与另一个用c++17编译的对象链接起来吗
- 为什么我可以通过引用修改常量返回
- 我可以在 C++ 中的函数体之外进行操作吗?
- 我可以重新分配/覆盖std::字符串吗
- C++-我可以创建另一个类的成员并在构造函数中使用它吗
- 我可以将调用类的"this"传递给 lambda 函数吗?
- 我可以检测和更改 gcc/g++ 中结构的当前数据对齐设置吗?
- 为什么我可以使用比分配的内存更多的内存
- 在一个读写器队列中,我可以用volatile替换原子吗
- 我可以把基础班提升为儿童班吗
- 我可以做些什么来消除或最小化这种将提供相同功能和行为的代码重复
- 我可以使用什么来停止循环而不是"返回 0"?
- 我可以使用反向迭代器作为ForwardIt吗
- 我可以创建一个包含两个变量的 for 循环,但时间复杂度仍然为 O(n) 吗?
- 我可以与 python 服务器而不是 c++ 客户端建立 tcp/ip 套接字吗?
- 无论如何,我可以确定构造函数是否存在吗?