例如我有这个程序:
int main()
{
int sockfd = ::socket(AF_INET, SOCK_RAW, IPPROTO_ICMP);
if ( sockfd == -1 )
printf("Error\n");
else
printf("Success\n");
return 0;
}
因此,我需要拥有超级用户的权限或使用setcap
:
$ ./Test
Error
sudo setcap cap_net_raw+eip ./Test
$ ./Test
Success
但是,我需要使用 QtCretor 调试我的程序,但即使这样,程序仍然无法运行setcap
。我尝试过应用setcap
QtCreator,但它不能解决我的问题。
有什么解决办法吗?