acl  3.5.3.0
acl_sys_patch.h 文件参考
#include "acl_define.h"
#include "acl_vstream.h"
+ acl_sys_patch.h 的引用(Include)关系图:
+ 此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

类型定义

typedef int(* acl_close_socket_fn) (ACL_SOCKET)
 
typedef ssize_t(* acl_read_fn) (ACL_SOCKET, void *, size_t)
 
typedef ssize_t(* acl_recv_fn) (ACL_SOCKET, void *, size_t, int)
 
typedef ssize_t(* acl_write_fn) (ACL_SOCKET, const void *, size_t)
 
typedef ssize_t(* acl_writev_fn) (ACL_SOCKET, const struct iovec *, int)
 
typedef ssize_t(* acl_send_fn) (ACL_SOCKET, const void *, size_t, int)
 

函数

ACL_API int acl_socket_init (void)
 
ACL_API int acl_socket_end (void)
 
ACL_API int acl_socket_close (ACL_SOCKET fd)
 
ACL_API int acl_socket_shutdown (ACL_SOCKET fd, int how)
 
ACL_API int acl_socket_read (ACL_SOCKET fd, void *buf, size_t size, int timeout, ACL_VSTREAM *fp, void *arg)
 
ACL_API int acl_socket_write (ACL_SOCKET fd, const void *buf, size_t size, int timeout, ACL_VSTREAM *fp, void *arg)
 
ACL_API int acl_socket_writev (ACL_SOCKET fd, const struct iovec *vec, int count, int timeout, ACL_VSTREAM *fp, void *arg)
 
ACL_API int acl_socket_alive (ACL_SOCKET fd)
 
ACL_API ACL_FILE_HANDLE acl_file_open (const char *filepath, int flags, int mode)
 
ACL_API int acl_file_close (ACL_FILE_HANDLE fh)
 
ACL_API acl_off_t acl_lseek (ACL_FILE_HANDLE fh, acl_off_t offset, int whence)
 
ACL_API int acl_file_read (ACL_FILE_HANDLE fh, void *buf, size_t size, int timeout, ACL_VSTREAM *fp, void *arg)
 
ACL_API int acl_file_write (ACL_FILE_HANDLE fh, const void *buf, size_t size, int timeout, ACL_VSTREAM *fp, void *arg)
 
ACL_API int acl_file_writev (ACL_FILE_HANDLE fh, const struct iovec *vec, int count, int timeout, ACL_VSTREAM *fp, void *arg)
 
ACL_API int acl_file_fflush (ACL_FILE_HANDLE fh, ACL_VSTREAM *fp, void *arg)
 
ACL_API acl_int64 acl_file_size (const char *filename)
 
ACL_API acl_int64 acl_file_fsize (ACL_FILE_HANDLE fh, ACL_VSTREAM *fp, void *arg)
 
ACL_API int acl_sane_socketpair (int domain, int type, int protocol, ACL_SOCKET result[2])
 
ACL_API void acl_set_read (acl_read_fn fn)
 
ACL_API void acl_set_write (acl_write_fn fn)
 
ACL_API void acl_set_writev (acl_writev_fn fn)
 
ACL_API void acl_set_close_socket (acl_close_socket_fn fn)
 
ACL_API void acl_set_recv (acl_recv_fn fn)
 
ACL_API void acl_set_send (acl_send_fn fn)
 

类型定义说明

◆ acl_close_socket_fn

typedef int(* acl_close_socket_fn) (ACL_SOCKET)

在文件 acl_sys_patch.h244 行定义.

◆ acl_read_fn

typedef ssize_t(* acl_read_fn) (ACL_SOCKET, void *, size_t)

在文件 acl_sys_patch.h245 行定义.

◆ acl_recv_fn

typedef ssize_t(* acl_recv_fn) (ACL_SOCKET, void *, size_t, int)

在文件 acl_sys_patch.h246 行定义.

◆ acl_send_fn

typedef ssize_t(* acl_send_fn) (ACL_SOCKET, const void *, size_t, int)

在文件 acl_sys_patch.h249 行定义.

◆ acl_write_fn

typedef ssize_t(* acl_write_fn) (ACL_SOCKET, const void *, size_t)

在文件 acl_sys_patch.h247 行定义.

◆ acl_writev_fn

typedef ssize_t(* acl_writev_fn) (ACL_SOCKET, const struct iovec *, int)

在文件 acl_sys_patch.h248 行定义.

函数说明

◆ acl_file_close()

ACL_API int acl_file_close ( ACL_FILE_HANDLE  fh)

关闭打开的文件句柄

参数
fh{ACL_FILE_HANDLE} 文件句柄
返回
{int} 0: ok; -1: error

◆ acl_file_fflush()

ACL_API int acl_file_fflush ( ACL_FILE_HANDLE  fh,
ACL_VSTREAM fp,
void *  arg 
)

将文件缓冲区中的数据全部写入硬盘

参数
fh{ACL_FILE_HANDLE} 文件句柄
fp{ACL_VSTREAM*} 对应的文件流句柄, 可以为空
arg{void*} 用户传递的参数, 以回调方式使用时此参数有效
返回
{int} 0: ok; -1: error

◆ acl_file_fsize()

ACL_API acl_int64 acl_file_fsize ( ACL_FILE_HANDLE  fh,
ACL_VSTREAM fp,
void *  arg 
)

根据文件句柄取得该文件的大小

参数
fh{ACL_FILE_HANDLE} 文件句柄
fp{ACL_VSTREAM*} 对应的文件流句柄, 可以为空
arg{void*} 用户传递的参数, 以回调方式使用时此参数有效
返回
{acl_int64} >= 0: ok; -1: error

◆ acl_file_open()

ACL_API ACL_FILE_HANDLE acl_file_open ( const char *  filepath,
int  flags,
int  mode 
)

打开文件句柄

参数
filepath{cosnt char*} 文件路径
flags{int} 打开标志位, O_RDONLY | O_WRONLY | O_RDWR, O_CREAT | O_EXCL | O_TRUNC, O_APPEND(for UNIX)
mode{int} 打开权限位, 仅对UNIX有效, 如:0700, 0755
返回
{ACL_FILE_HANDLE} 打开的文件句柄,返回 ACL_FILE_INVALID 表示打开失败

◆ acl_file_read()

ACL_API int acl_file_read ( ACL_FILE_HANDLE  fh,
void *  buf,
size_t  size,
int  timeout,
ACL_VSTREAM fp,
void *  arg 
)

从文件中读数据

参数
fh{ACL_FILE_HANDLE} 文件句柄
buf{void*} 存储缓冲区
size{size_t} buf 缓冲区大小
timeout{int} 读超时时间(秒)
fp{ACL_VSTREAM*} 对应的文件流句柄, 可以为空
arg{void*} 用户传递的参数, 以回调方式使用时此参数有效
返回
{int} 读到的实际数据, 如果返回 ACL_VSTREAM_EOF 表示读结束或出错

◆ acl_file_size()

ACL_API acl_int64 acl_file_size ( const char *  filename)

根据文件名取得该文件的大小

参数
filename{const char*} 文件名
返回
{acl_int64} >= 0: ok; -1: error

◆ acl_file_write()

ACL_API int acl_file_write ( ACL_FILE_HANDLE  fh,
const void *  buf,
size_t  size,
int  timeout,
ACL_VSTREAM fp,
void *  arg 
)

向文件中写数据

参数
fh{ACL_FILE_HANDLE} 文件句柄
buf{void*} 数据存储缓冲区
size{size_t} buf 缓冲区中数据长度大小
timeout{int} 写超时时间(秒)
fp{ACL_VSTREAM*} 对应的文件流句柄, 可以为空
arg{void*} 用户传递的参数, 以回调方式使用时此参数有效
返回
{int} 成功写的数据量, 如果返回 ACL_VSTREAM_EOF 表示写出错

◆ acl_file_writev()

ACL_API int acl_file_writev ( ACL_FILE_HANDLE  fh,
const struct iovec *  vec,
int  count,
int  timeout,
ACL_VSTREAM fp,
void *  arg 
)

向文件中写一组数据

参数
fh{ACL_FILE_HANDLE} 文件句柄
vec{const struct iovec*} 数据存储数组
count{int} vec 数组中元素个数
timeout{int} 写超时时间(秒)
fp{ACL_VSTREAM*} 对应的文件流句柄, 可以为空
arg{void*} 用户传递的参数, 以回调方式使用时此参数有效
返回
{int} 成功写的数据量, 如果返回 ACL_VSTREAM_EOF 表示写出错

◆ acl_lseek()

ACL_API acl_off_t acl_lseek ( ACL_FILE_HANDLE  fh,
acl_off_t  offset,
int  whence 
)

定位文件位置

参数
fh{ACL_FILE_HANDLE} 文件句柄
offset{acl_off_t} 偏移位置
whence{int} 位置标志位:SEEK_CUR, SEEK_SET, SEEK_END
返回
{acl_off_t} 当前的文件偏移位置

◆ acl_sane_socketpair()

ACL_API int acl_sane_socketpair ( int  domain,
int  type,
int  protocol,
ACL_SOCKET  result[2] 
)

创建 SOCKET 对

参数
domain{int}
type{int}
protocol{int}
result{ACL_SOCKET [2]} 存储结果
返回
{int} 成功返回 0,失败返回 -1

◆ acl_set_close_socket()

ACL_API void acl_set_close_socket ( acl_close_socket_fn  fn)

◆ acl_set_read()

ACL_API void acl_set_read ( acl_read_fn  fn)

◆ acl_set_recv()

ACL_API void acl_set_recv ( acl_recv_fn  fn)

◆ acl_set_send()

ACL_API void acl_set_send ( acl_send_fn  fn)

◆ acl_set_write()

ACL_API void acl_set_write ( acl_write_fn  fn)

◆ acl_set_writev()

ACL_API void acl_set_writev ( acl_writev_fn  fn)

◆ acl_socket_alive()

ACL_API int acl_socket_alive ( ACL_SOCKET  fd)

判断套接字是否正常

参数
fd{ACL_SOCKET}
返回
{int} 返回值 1 表示正常,返回 0 表示异常

◆ acl_socket_close()

ACL_API int acl_socket_close ( ACL_SOCKET  fd)

关闭套接字

参数
fd{ACL_SOCKET} 套接字
返回
{int} 0: OK; -1: error

◆ acl_socket_end()

ACL_API int acl_socket_end ( void  )

程序退出前调用此函数释放全局套接字资源(仅_WIN32下有效)

返回
{int} 0: OK; -1: error

◆ acl_socket_init()

ACL_API int acl_socket_init ( void  )

套接字初始化,对于_WIN32平台:需要调用WSAStartup来初始化SOCKET, 而对于UNIX平台:需要通过 signal(SIGPIPE, SIG_IGN) 来忽略信号

返回
{int} 0: OK; -1: error

◆ acl_socket_read()

ACL_API int acl_socket_read ( ACL_SOCKET  fd,
void *  buf,
size_t  size,
int  timeout,
ACL_VSTREAM fp,
void *  arg 
)

从套接字读数据

参数
fd{ACL_SOCKET} 网络套接字
buf{void*} 内存缓冲区地址
size{size_t} buf 缓冲区大小
timeout{size_t} 读超时时间(秒)
fp{ACL_VSTREAM*} 网络流, 可以为空
arg{void*} 用户自已的参数,在回调方式时有用
返回
{int} 0: OK; -1: error

◆ acl_socket_shutdown()

ACL_API int acl_socket_shutdown ( ACL_SOCKET  fd,
int  how 
)

禁止套接口的发送与接收

参数
fd{ACL_SOCKET} 套接字
how{int}
返回
{int} 返回 0 表示操作成功,否则表示出错

◆ acl_socket_write()

ACL_API int acl_socket_write ( ACL_SOCKET  fd,
const void *  buf,
size_t  size,
int  timeout,
ACL_VSTREAM fp,
void *  arg 
)

向套接字写数据

参数
fd{ACL_SOCKET} 网络套接字
buf{void*} 数据地址
size{size_t} buf 数据大小
timeout{int} 写超时时间(秒)
fp{ACL_VSTREAM*} 网络流, 可以为空
arg{void*} 用户自已的参数,在回调方式时有用
返回
{int} 0: OK; -1: error

◆ acl_socket_writev()

ACL_API int acl_socket_writev ( ACL_SOCKET  fd,
const struct iovec *  vec,
int  count,
int  timeout,
ACL_VSTREAM fp,
void *  arg 
)

向套接字写数据

参数
fd{ACL_SOCKET} 网络套接字
vec{const struct iovec*} 数据数组地址
count{int} vec 数组长度
timeout{int} 写超时时间(秒)
fp{ACL_VSTREAM*} 网络流, 可以为空
arg{void*} 用户自已的参数,在回调方式时有用
返回
{int} 0: OK; -1: error