socket.h
来自「基于组件方式开发操作系统的OSKIT源代码」· C头文件 代码 · 共 135 行
H
135 行
/* * Copyright (c) 1997-1998 University of Utah and the Flux Group. * All rights reserved. * * This file is part of the Flux OSKit. The OSKit is free software, also known * as "open source;" you can redistribute it and/or modify it under the terms * of the GNU General Public License (GPL), version 2, as published by the Free * Software Foundation (FSF). To explore alternate licensing terms, contact * the University of Utah at csl-dist@cs.utah.edu or +1-801-585-3271. * * The OSKit is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GPL for more details. You should have * received a copy of the GPL along with the OSKit; see the file COPYING. If * not, write to the FSF, 59 Temple Place #330, Boston, MA 02111-1307, USA. */#ifndef _OSKIT_C_SYS_SOCKET_H_#define _OSKIT_C_SYS_SOCKET_H_#include <oskit/types.h>#include <oskit/compiler.h>#include <oskit/net/socket.h>/* * Definitions related to sockets: types, address families, options. * see oskit/net/socket.h for comments *//* * Socket types */#define SOCK_STREAM OSKIT_SOCK_STREAM#define SOCK_DGRAM OSKIT_SOCK_DGRAM#define SOCK_SEQPACKET OSKIT_SOCK_SEQPACKET/* * Option flags per-socket. */#define SO_DEBUG OSKIT_SO_DEBUG#define SO_ACCEPTCONN OSKIT_SO_ACCEPTCONN#define SO_REUSEADDR OSKIT_SO_REUSEADDR#define SO_KEEPALIVE OSKIT_SO_KEEPALIVE#define SO_BROADCAST OSKIT_SO_BROADCAST#define SO_LINGER OSKIT_SO_LINGER#define SO_OOBINLINE OSKIT_SO_OOBINLINE /* * Additional options, not kept in so_options. */#define SO_SNDBUF OSKIT_SO_SNDBUF#define SO_RCVBUF OSKIT_SO_RCVBUF#define SO_ERROR OSKIT_SO_ERROR#define SO_TYPE OSKIT_SO_TYPE/* * Structure used for manipulating linger option. * Must be IDENTICAL with struct oskit_linger in net/socket.h. */struct linger { int l_onoff; /* option on/off */ int l_linger; /* linger time */};/* * Level number for (get/set)sockopt() to apply to socket itself. */#define SOL_SOCKET OSKIT_SOL_SOCKET/* * Address families. */typedef unsigned char sa_family_t;#define AF_UNSPEC OSKIT_AF_UNSPEC#define AF_UNIX OSKIT_AF_UNIX#define AF_INET OSKIT_AF_INET#define AF_MAX OSKIT_AF_MAX#define AF_INET6 OSKIT_AF_INET6/* * Structure used by kernel to store most addresses. * This must be IDENTICAL with struct oskit_sockaddr in net/socket.h. */struct sockaddr { unsigned char sa_len; /* total length */ sa_family_t sa_family; /* address family */ char sa_data[14]; /* actually longer; address value */};/* * Message header for recvmsg and sendmsg calls. * Used value-result for recvmsg, value only for sendmsg. * This must be IDENTICAL with struct oskit_msghdr in net/socket.h. */struct msghdr { void * msg_name; /* optional address */ oskit_size_t msg_namelen; /* size of address */ struct iovec * msg_iov; /* scatter/gather array */ int msg_iovlen; /* # elements in msg_iov */ void * msg_control; /* ancillary data, see below */ oskit_size_t msg_controllen; /* ancillary data buffer len */ int msg_flags; /* flags on received message */};#define MSG_OOB OSKIT_MSG_OOB#define MSG_PEEK OSKIT_MSG_PEEK#define MSG_EOR OSKIT_MSG_EOR#define MSG_TRUNC OSKIT_MSG_TRUNC#define MSG_CTRUNC OSKIT_MSG_CTRUNC#define MSG_WAITALL OSKIT_MSG_WAITALLOSKIT_BEGIN_DECLSint accept (int, struct sockaddr *, int *);int bind (int, const struct sockaddr *, int);int connect (int, const struct sockaddr *, int); int getpeername (int, struct sockaddr *, int *);int getsockname (int, struct sockaddr *, int *);int getsockopt (int, int, int, void *, int *);int listen (int, int);oskit_ssize_t recv (int, void *, oskit_size_t, int);oskit_ssize_t recvfrom (int, void *, oskit_size_t, int, struct sockaddr *, int *);oskit_ssize_t recvmsg (int, struct msghdr *, int);oskit_ssize_t send (int, const void *, oskit_size_t, int);oskit_ssize_t sendto (int, const void *, oskit_size_t, int, const struct sockaddr *, int);oskit_ssize_t sendmsg (int, const struct msghdr *, int);int setsockopt (int, int, int, const void *, int);int shutdown (int, int);int socket (int, int, int);int socketpair (int, int, int, int *);OSKIT_END_DECLS#endif /* !_OSKIT_C_SYS_SOCKET_H_ */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?