1 Star 1 Fork 1

乌合之众 / IOplus

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

#IOplus IO扩展库

一个简单的IO转调库。 目前很多软件编写的时候,其文件操作部分都是基于C标准库或者系统API函数来实现的。 这个库的目的就是扩展这些函数的具体实现,以便于添加更多的功能。例如使得fopen支持http协议,打开网络文件等。

linux 下使用说明

在linux下,目前实现了以下函数的转调操作。

	#include <fcntl.h>
	/* 成功返回文件描述符, 失败返回-1 */
	int open(const char *pathname, int oflag, ... /* mode_t mode */);

	#include <unistd.h>
	/* 成功返回0, 失败返回-1 */
	int close(int filedes);
	/* 成功返回新的文件偏移量,出错返回-1 */
	off_t lseek(int filedes, off_t offset, int whence);
	/* 成功则返回读取到的字节数,若已到文件的结尾返回0,出错返回-1 */
	ssize_t read(int filedes, void *buf, size_t nbytes);
	/* 成功则返回写入的字节数,出错返回-1 */
	ssize_t write(int filedes, const void *buf, size_t nbytes);
	/* 成功则返回新的文件描述符,出错返回-1 */
	int dup(int filedes);
	int dup2(int fileds, int filedes2);
	/* 成功返回0,失败返回-1 */
	int fsync(int filedes);     /* 刷filedes指代的文件的缓存到磁盘 */
	int fdatasync(int filedes); /* 与fsync类似,但只刷数据,不刷属性 */
	void sync(void);            /* 刷所有脏的缓存 */

example目录下有一个iop_custom.c的文件,里面实现了一些iop_xxx的函数。在这里你可以修改其中的实现来达到自己的目的。 如果你在这里需要调用原本的IO函数,请使用iop_real_xxx的调用。其中xxxopen``close...等。在调用这些原本的IO函数前,请调用一次iop_init函数。 iop_init函数返回NULL表示成功,否则表示出错。错误信息在返回的const char*指针指向的字符串中。

暂时没有实现create函数,因为其可以使用open函数来替代。

编译链接说明

你可以把所有源代码包含在你的工程中一起编译,或者使用libs目录下的SConstruct文件来编译出静态库。如果你这样做,请在生成你的项目的时候,链接上dl库。 如果你想使用动态库,那么使用libs目录下编译出来的libioplus.so文件即可。 (备注:SConstruct文件是scons工具使用的配置文件,相当于make工具使用的Makefile文件)

windows 下使用说明

windows下暂时还未实现。

空文件

简介

一个简单的IO转调库。 目前很多软件编写的时候,其文件操作部分都是基于C标准库或者系统API函数来实现的。这个库的目的就是扩展这些函数的具体实现,以便于添加更多的功能。例如使得fopen支持http协议,打开网络文件等。 展开 收起
C
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
C
1
https://gitee.com/solym/IOplus.git
git@gitee.com:solym/IOplus.git
solym
IOplus
IOplus
master

搜索帮助