Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
libvirt
提交
941ccbc1
L
libvirt
项目概览
openeuler
/
libvirt
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
libvirt
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
941ccbc1
编写于
6月 21, 2016
作者:
J
Ján Tomko
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add virDirOpenIfExists
Just like virDirOpen, but it returns 0 without reporting an error on ENOENT.
上级
e81de04c
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
22 addition
and
2 deletion
+22
-2
src/libvirt_private.syms
src/libvirt_private.syms
+1
-0
src/util/virfile.c
src/util/virfile.c
+19
-2
src/util/virfile.h
src/util/virfile.h
+2
-0
未找到文件。
src/libvirt_private.syms
浏览文件 @
941ccbc1
...
...
@@ -1496,6 +1496,7 @@ virBuildPathInternal;
virDirClose;
virDirCreate;
virDirOpen;
virDirOpenIfExists;
virDirRead;
virFileAbsPath;
virFileAccessibleAs;
...
...
src/util/virfile.c
浏览文件 @
941ccbc1
...
...
@@ -2723,10 +2723,12 @@ virFileRemove(const char *path,
#endif
/* WIN32 */
static
int
virDirOpenInternal
(
DIR
**
dirp
,
const
char
*
name
)
virDirOpenInternal
(
DIR
**
dirp
,
const
char
*
name
,
bool
ignoreENOENT
)
{
*
dirp
=
opendir
(
name
);
if
(
!*
dirp
)
{
if
(
ignoreENOENT
&&
errno
==
ENOENT
)
return
0
;
virReportSystemError
(
errno
,
_
(
"cannot open directory '%s'"
),
name
);
return
-
1
;
}
...
...
@@ -2744,7 +2746,22 @@ virDirOpenInternal(DIR **dirp, const char *name)
int
virDirOpen
(
DIR
**
dirp
,
const
char
*
name
)
{
return
virDirOpenInternal
(
dirp
,
name
);
return
virDirOpenInternal
(
dirp
,
name
,
false
);
}
/**
* virDirOpenIfExists
* @dirp: directory stream
* @name: path of the directory
*
* Returns 1 on success.
* If opendir returns ENOENT, 0 is returned without reporting an error.
* On other errors, -1 is returned and an error is reported.
*/
int
virDirOpenIfExists
(
DIR
**
dirp
,
const
char
*
name
)
{
return
virDirOpenInternal
(
dirp
,
name
,
true
);
}
/**
...
...
src/util/virfile.h
浏览文件 @
941ccbc1
...
...
@@ -232,6 +232,8 @@ int virDirCreate(const char *path, mode_t mode, uid_t uid, gid_t gid,
unsigned
int
flags
)
ATTRIBUTE_RETURN_CHECK
;
int
virDirOpen
(
DIR
**
dirp
,
const
char
*
dirname
)
ATTRIBUTE_NONNULL
(
1
)
ATTRIBUTE_NONNULL
(
2
)
ATTRIBUTE_RETURN_CHECK
;
int
virDirOpenIfExists
(
DIR
**
dirp
,
const
char
*
dirname
)
ATTRIBUTE_NONNULL
(
1
)
ATTRIBUTE_NONNULL
(
2
)
ATTRIBUTE_RETURN_CHECK
;
int
virDirRead
(
DIR
*
dirp
,
struct
dirent
**
ent
,
const
char
*
dirname
)
ATTRIBUTE_NONNULL
(
1
)
ATTRIBUTE_NONNULL
(
2
)
ATTRIBUTE_RETURN_CHECK
;
void
virDirClose
(
DIR
**
dirp
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录