gpt4 book ai didi

c - socket() 失败 - errno EPERM - ubuntu

转载 作者:太空宇宙 更新时间:2023-11-04 07:20:51 25 4
gpt4 key购买 nike

我正在从我的用户空间应用程序调用 socket(),并收到一个错误,errno = 1 = EPERM。我不是 root 用户。除了使用 sudo 调用我的应用程序之外,还有其他事情要做吗?

这是代码:

if ((sock=socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL)))<0) { //error in socket() } 

最佳答案

那是因为想要使用 SOCK_RAW 套接字的进程需要具有 CAP_NET_RAW 功能或 UID0 (root),来自手册页:

Only processes with an effective user ID of 0 or the CAP_NET_RAW capability are allowed to open raw sockets.

关于c - socket() 失败 - errno EPERM - ubuntu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21723897/

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