我正在尝试在ClearOS 7.3,64位
上执行简单程序#include <sys/socket.h>
#include <linux/netlink.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <errno.h>
int main()
{
int flags =0;
int bus = NETLINK_NETFILTER;
int sock_fd = socket(AF_NETLINK, SOCK_RAW | flags, bus);
if(sock_fd<0)
{
printf("\nsocket failed with error no = %d and error msg = %s\n",
errno, strerror(errno));
return -1;
}
printf("\nOP completed successfully..!\n");
return 0;
}
我收到以下错误:
套接字失败,错误号= 93,错误消息msg =协议没有 支持的
我的操作系统详细信息是:
请帮忙。
答案 0 :(得分:0)
适合我。
NETLINK_NETFILTER
模块注册了$ sudo modprobe nfnetlink
协议。
在我的情况下,内核会自动注册模块,因为此代码使用它,但如果你的代码没有,请尝试手动插入:
let infoButton = UIButton.init(type: .custom)
infoButton.setImage(UIImage(named: "info button white.png"), for: UIControlState.normal)
infoButton.addTarget(self, action: #selector(StartViewController.infoButtonPressed), for: UIControlEvents.touchUpInside)
infoButton.frame = CGRect(x: 0, y: 0, width: 25, height: 25)
let barButton = UIBarButtonItem(customView: infoButton)
self.navigationItem.rightBarButtonItem = barButton
然后再次尝试打开套接字。