首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么<linux/socket.h>文件不定义套接字类型?

为什么<linux/socket.h>文件不定义套接字类型?
EN

Stack Overflow用户
提问于 2012-04-23 10:02:15
回答 1查看 3.1K关注 0票数 2

Linux提供的头文件"/usr/include/linux/socket.h“包含支持的地址族和协议族的定义:

代码语言:javascript
复制
/* Supported address families. */
#define AF_UNSPEC       0
....

/* Protocol families, same as address families. */
#define PF_UNSPEC       AF_UNSPEC
...

但是为什么它不定义套接字类型呢?

我可以在“/usr/include/bit/socket.h”中找到它的定义

代码语言:javascript
复制
enum sock_type {
    SOCK_DGRAM  = 1,
    SOCK_STREAM = 2,
    SOCK_RAW    = 3,
    SOCK_RDM    = 4,
    SOCK_SEQPACKET  = 5,
    SOCK_DCCP   = 6,
    SOCK_PACKET = 10,
};

我想知道为什么Linux提供的头文件中没有定义这些内容?

EN

回答 1

Stack Overflow用户

发布于 2012-04-23 10:08:48

用户空间程序应该使用:

代码语言:javascript
复制
#include <sys/socket.h>

注:sys,而不是linux

然后,这将#include适当的低级别头文件。

有些定义在<bits/socket.h>中,有些在<linux/socket.h>中,这只是一个实现细节。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10278433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档