gpt4 book ai didi

c - fatal error : sys/dpli_common. h 没有这样的文件

转载 作者:行者123 更新时间:2023-11-30 18:00:55 25 4
gpt4 key购买 nike

嗨,我尝试编译这个程序:



<前> #include
#include
#include
#include
#include

int main(int argc,char *argv[])
{
int fd,状态;
struct strioctl strcmd;
无符号字符地址[6];
fd = 打开(argv[1],0,0);
如果(fd==-1){
perror("enaddr: 打开");
退出(1);
}

strcmd.ic_cmd = DLIOCGENADDR;
strcmd.ic_timout = 0;
strcmd.ic_len = sizeof(addr);
strcmd.ic_dp = 地址;

状态 = ioctl(fd,I_STR,&strcmd);
如果(状态==-1){
perror("enaddr: ioctl");
退出(1);
}

printf("%02.2x:%02.2x:%02.2x:%02.2x:%02.2x:%02.2x\n",addr[0],addr[1],addr[2],addr[3],地址[4],地址[5]);
}

终端返回这个 fatal error :

prova.c:3:30: fatal error :sys/dlpi_common.h:没有这样的文件或目录编译终止。

为什么?这个图书馆在哪里?

最佳答案

应该dlpi_ether.h位于同一位置,您的系统不会提示。

这并不是一个真正的 C 问题,因为它很大程度上取决于您正在工作的环境而不是 C 本身。我们只能说您没有该头文件。

如果您使用的是类似 UNIX 的操作系统,您可以使用以下命令来查找它:

find /usr/include -name 'dlpi*.h'
<小时/>

根据this link,这些头文件很可能根本不在Linux中。来自甲骨文:

The code to read raw Ethernet is quite different between the Solaris OS and Linux (libpcap can also be used to examine the differences with other systems, such as FreeBSD, HP-UX, and AIX).

The applicable code in libpcap is at pcap-linux.c and pcap-dlpi.c. The DLPI code is used for Solaris, HP-UX, AIX, and other operating systems. Linux provides a mechanism for reading raw socket packets via the standard socket calls. The Solaris OS uses the getmsg(2) and putmsg(2) calls to receive and send DLPI packets.

关于c - fatal error : sys/dpli_common. h 没有这样的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10137535/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com