赞 | 0 |
VIP | 2 |
好人卡 | 27 |
积分 | 1 |
经验 | 26327 |
最后登录 | 2019-10-13 |
在线时间 | 953 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 110
- 在线时间
- 953 小时
- 注册时间
- 2007-4-25
- 帖子
- 805
|
推荐用禾西同志的方法。生成子 Shell 其实就是 fork 一个子进程,有额外的开销。禾西的方法底层调用的是系统 API:- static int
- wmkdir(const WCHAR *wpath, int mode)
- {
- int ret = -1;
- RUBY_CRITICAL(do {
- if (CreateDirectoryW(wpath, NULL) == FALSE) {
- errno = map_errno(GetLastError());
- break;
- }
- if (_wchmod(wpath, mode) == -1) {
- RemoveDirectoryW(wpath);
- break;
- }
- ret = 0;
- } while (0));
- return ret;
- }
复制代码 当然在其上也包装了不少抽象层。如果要追求绝对效率,可以直接用 Win32API 调用 CreateDirectory。 |
|