1 Star 0 Fork 6

northqd/async

forked from 方瑾/async 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
fs.h 1.52 KB
一键复制 编辑 原始数据 按行查看 历史
方瑾 提交于 2019-04-14 19:27 . update
#ifndef __FS_H__
#define __FS_H__
#include<Windows.h>
#include<pthread.h>
#include"io.h"
#include"events.h"
enum _FsConstants {
F_OK = 0, // 文件可见
W_OK = 2, // 文件可读
R_OK = 4, // 文件可写
X_OK = 6 // 文件可执行
};
typedef enum _FsConstants FsConstants;
typedef struct _WIN32_FILE_ATTRIBUTE_DATA *FileAttributes;
#define newFileAttributes() NEW(struct _WIN32_FILE_ATTRIBUTE_DATA)
typedef struct watch * Watch;
typedef void(*WatchFileCallback)(Watch watch);
typedef void(*WatchFile)(string path, WatchFileCallback callback);
typedef void(*AccessFileCallback)(string error, Boolean result);
typedef void(*AccessFile)(string path, AccessFileCallback callback);
typedef struct watch {
string id;
string path;
FileAttributes fileAttributes;
WatchFileCallback onChange;
FILETIME ftCreationTime;
FILETIME ftLastAccessTime;
FILETIME ftLastWriteTime;
}*Watch;
#define newWatch() NEW(struct watch)
typedef struct fs{
WatchFile watchFile;
}*Fs;
#define newFs() NEW(struct fs)
static void watchFileTask(let args);
static void onFileChange(Event event, let args);
// 初始化IO服务进程数据
IoService initIoService(Array undealQueue, Array finishQueue);
// 进程退出时释放内存
void freeIoService();
// 处理IO完成结果
void dealFinishIOEvent(IoEvent event);
// 处理已完成的access事件
static void accessFileEvent(Event event, let args);
// 监听文件的变化
void watchFile(string path, WatchFileCallback callback, int interval);
// 验证文件是否存在
void accessFile(string path, FsConstants mode, AccessFileCallback callback);
#endif // ! __FS_H__
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/northqd2018/async.git
git@gitee.com:northqd2018/async.git
northqd2018
async
async
master

搜索帮助