Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
ce00b3e2
R
Rust
项目概览
int
/
Rust
大约 1 年 前同步成功
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
Rust
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
ce00b3e2
编写于
10月 19, 2020
作者:
D
Dan Gohman
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Use `link` on platforms which lack `linkat`.
上级
23a5c214
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
14 addition
and
4 deletion
+14
-4
library/std/src/sys/unix/fs.rs
library/std/src/sys/unix/fs.rs
+14
-4
未找到文件。
library/std/src/sys/unix/fs.rs
浏览文件 @
ce00b3e2
...
...
@@ -1067,10 +1067,20 @@ pub fn symlink(src: &Path, dst: &Path) -> io::Result<()> {
pub
fn
link
(
src
:
&
Path
,
dst
:
&
Path
)
->
io
::
Result
<
()
>
{
let
src
=
cstr
(
src
)
?
;
let
dst
=
cstr
(
dst
)
?
;
// Use `linkat` with `AT_FDCWD` instead of `link` as `link` leaves it
// implementation-defined whether it follows symlinks. Pass 0 as the
// `linkat` flags argument so that we don't follow symlinks.
cvt
(
unsafe
{
libc
::
linkat
(
libc
::
AT_FDCWD
,
src
.as_ptr
(),
libc
::
AT_FDCWD
,
dst
.as_ptr
(),
0
)
})
?
;
cfg_if
::
cfg_if!
{
if
#[cfg(any(target_os
=
"vxworks"
,
target_os
=
"redox"
))]
{
// VxWorks and Redox lack `linkat`, so use `link` instead. POSIX
// leaves it implementation-defined whether `link` follows symlinks,
// so rely on the `symlink_hard_link` test in
// library/std/src/fs/tests.rs to check the behavior.
cvt
(
unsafe
{
libc
::
link
(
src
.as_ptr
(),
dst
.as_ptr
())
})
?
;
}
else
{
// Use `linkat` with `AT_FDCWD` instead of `link` as `linkat` gives
// us a flag to specify how symlinks should be handled. Pass 0 as
// the flags argument, meaning don't follow symlinks.
cvt
(
unsafe
{
libc
::
linkat
(
libc
::
AT_FDCWD
,
src
.as_ptr
(),
libc
::
AT_FDCWD
,
dst
.as_ptr
(),
0
)
})
?
;
}
}
Ok
(())
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录