Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
s920243400
PaddleDetection
提交
6eca88ac
P
PaddleDetection
项目概览
s920243400
/
PaddleDetection
与 Fork 源项目一致
Fork自
PaddlePaddle / PaddleDetection
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleDetection
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
6eca88ac
编写于
3月 27, 2019
作者:
D
dongdaxiang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix io and fs compile on mac
test=develop
上级
2708108a
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
22 addition
and
15 deletion
+22
-15
paddle/fluid/framework/io/shell.cc
paddle/fluid/framework/io/shell.cc
+22
-15
未找到文件。
paddle/fluid/framework/io/shell.cc
浏览文件 @
6eca88ac
...
...
@@ -19,7 +19,9 @@ namespace framework {
std
::
shared_ptr
<
FILE
>
shell_fopen
(
const
std
::
string
&
path
,
const
std
::
string
&
mode
)
{
#ifndef _WIN32
#if defined _WIN32 || defined __APPLE__
return
nullptr
;
#else
if
(
shell_verbose
())
{
LOG
(
INFO
)
<<
"Opening file["
<<
path
<<
"] with mode["
<<
mode
<<
"]"
;
}
...
...
@@ -35,8 +37,6 @@ std::shared_ptr<FILE> shell_fopen(const std::string& path,
LOG
(
FATAL
)
<<
"fclose fail, path["
<<
path
<<
"]"
;
}
}};
#else
return
nullptr
;
#endif
}
...
...
@@ -44,7 +44,9 @@ std::shared_ptr<FILE> shell_fopen(const std::string& path,
// The implementation is async signal safe
// Mostly copy from CPython code
static
int
close_open_fds_internal
()
{
#ifndef _WIN32
#if defined _WIN32 || defined __APPLE__
return
0
;
#else
struct
linux_dirent
{
long
d_ino
=
0
;
// NOLINT
off_t
d_off
;
...
...
@@ -91,13 +93,15 @@ static int close_open_fds_internal() {
}
close
(
dir_fd
);
#endif
return
0
;
#endif
}
static
int
shell_popen_fork_internal
(
const
char
*
real_cmd
,
bool
do_read
,
int
parent_end
,
int
child_end
)
{
#ifndef _WIN32
#if defined _WIN32 || defined __APPLE__
return
0
;
#else
int
child_pid
=
-
1
;
// Too frequent calls to fork() makes openmpi very slow. Use vfork() instead.
// But vfork() is very dangerous. Be careful.
...
...
@@ -127,12 +131,13 @@ static int shell_popen_fork_internal(const char* real_cmd, bool do_read,
}
exit
(
127
);
#endif
return
0
;
}
std
::
shared_ptr
<
FILE
>
shell_popen
(
const
std
::
string
&
cmd
,
const
std
::
string
&
mode
,
int
*
err_no
)
{
#ifndef _WIN32
#if defined _WIN32 || defined __APPLE__
return
nullptr
;
#else
bool
do_read
=
mode
==
"r"
;
bool
do_write
=
mode
==
"w"
;
if
(
!
(
do_read
||
do_write
))
{
...
...
@@ -197,7 +202,9 @@ std::shared_ptr<FILE> shell_popen(const std::string& cmd,
static
int
shell_p2open_fork_internal
(
const
char
*
real_cmd
,
int
pipein_fds
[
2
],
int
pipeout_fds
[
2
])
{
#ifndef _WIN32
#if defined _WIN32 || defined __APPLE__
return
0
;
#else
int
child_pid
=
-
1
;
if
((
child_pid
=
fork
())
<
0
)
{
return
-
1
;
...
...
@@ -230,12 +237,13 @@ static int shell_p2open_fork_internal(const char* real_cmd, int pipein_fds[2],
}
exit
(
127
);
#endif
return
0
;
}
std
::
pair
<
std
::
shared_ptr
<
FILE
>
,
std
::
shared_ptr
<
FILE
>>
shell_p2open
(
const
std
::
string
&
cmd
)
{
#ifndef _WIN32
#if defined _WIN32 || defined __APPLE__
return
nullptr
;
#else
if
(
shell_verbose
())
{
LOG
(
INFO
)
<<
"Opening bidirectional pipe["
<<
cmd
<<
"]"
;
}
...
...
@@ -287,13 +295,13 @@ std::pair<std::shared_ptr<FILE>, std::shared_ptr<FILE>> shell_p2open(
PCHECK
((
out_fp
=
fdopen
(
pipeout_fds
[
1
],
"w"
))
!=
NULL
);
return
{{
in_fp
,
[
child_life
](
FILE
*
fp
)
{
PCHECK
(
fclose
(
fp
)
==
0
);
}},
{
out_fp
,
[
child_life
](
FILE
*
fp
)
{
PCHECK
(
fclose
(
fp
)
==
0
);
}}};
#else
return
nullptr
;
#endif
}
std
::
string
shell_get_command_output
(
const
std
::
string
&
cmd
)
{
#ifndef _WIN32
#if defined _WIN32 || defined __APPLE__
return
""
;
#else
int
err_no
=
0
;
do
{
err_no
=
0
;
...
...
@@ -308,7 +316,6 @@ std::string shell_get_command_output(const std::string& cmd) {
}
}
while
(
err_no
==
-
1
);
#endif
return
""
;
}
}
// end namespace framework
}
// end namespace paddle
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录