Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
X
xv6-public
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
问题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
银宸时代
OS Lab Group
奖励实验
xv6-public
提交
766ba5cc
提交
766ba5cc
8月 24, 2007
创建
作者:
rsc
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
first ever correct use of strncpy
上级
aa6824ab
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
17 行增加
和
24 行删除
+17
-24
defs.h
defs.h
+1
-0
fs.c
fs.c
+2
-22
string.c
string.c
+14
-2
没有找到文件。
defs.h
浏览文件 @
766ba5cc
...
...
@@ -127,6 +127,7 @@ void* memset(void*, int, uint);
char
*
safestrcpy
(
char
*
,
const
char
*
,
int
);
int
strlen
(
const
char
*
);
int
strncmp
(
const
char
*
,
const
char
*
,
uint
);
char
*
strncpy
(
char
*
,
const
char
*
,
int
);
// syscall.c
int
argint
(
int
,
int
*
);
...
...
fs.c
浏览文件 @
766ba5cc
...
...
@@ -455,15 +455,7 @@ writei(struct inode *ip, char *src, uint off, uint n)
int
namecmp
(
const
char
*
s
,
const
char
*
t
)
{
int
i
;
for
(
i
=
0
;
i
<
DIRSIZ
;
i
++
){
if
(
s
[
i
]
!=
t
[
i
])
return
s
[
i
]
-
t
[
i
];
if
(
s
[
i
]
==
0
)
break
;
}
return
0
;
return
strncmp
(
s
,
t
,
DIRSIZ
);
}
// Look for a directory entry in a directory.
...
...
@@ -500,18 +492,6 @@ dirlookup(struct inode *dp, char *name, uint *poff)
return
0
;
}
// Copy one name to another.
static
void
namecpy
(
char
*
s
,
const
char
*
t
)
{
int
i
;
for
(
i
=
0
;
i
<
DIRSIZ
&&
t
[
i
];
i
++
)
s
[
i
]
=
t
[
i
];
for
(;
i
<
DIRSIZ
;
i
++
)
s
[
i
]
=
0
;
}
// Write a new directory entry (name, ino) into the directory dp.
int
dirlink
(
struct
inode
*
dp
,
char
*
name
,
uint
ino
)
...
...
@@ -534,7 +514,7 @@ dirlink(struct inode *dp, char *name, uint ino)
break
;
}
namecpy
(
de
.
name
,
name
);
strncpy
(
de
.
name
,
name
,
DIRSIZ
);
de
.
inum
=
ino
;
if
(
writei
(
dp
,
(
char
*
)
&
de
,
off
,
sizeof
(
de
))
!=
sizeof
(
de
))
panic
(
"dirwrite"
);
...
...
string.c
浏览文件 @
766ba5cc
...
...
@@ -56,8 +56,20 @@ strncmp(const char *p, const char *q, uint n)
n
--
,
p
++
,
q
++
;
if
(
n
==
0
)
return
0
;
else
return
(
int
)
((
uchar
)
*
p
-
(
uchar
)
*
q
);
return
(
uchar
)
*
p
-
(
uchar
)
*
q
;
}
char
*
strncpy
(
char
*
s
,
const
char
*
t
,
int
n
)
{
char
*
os
;
os
=
s
;
while
(
n
--
>
0
&&
(
*
s
++
=
*
t
++
)
!=
0
)
;
while
(
n
--
>
0
)
*
s
++
=
0
;
return
os
;
}
// Like strncpy but guaranteed to NUL-terminate.
...
...
编写
预览
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论