lab5: path_append 支持 sub 为绝对路径
This commit is contained in:
parent
495c7c195f
commit
50da90a75f
@ -320,11 +320,17 @@ void path_to_absolute(char *path) {
|
||||
}
|
||||
|
||||
/**
|
||||
* 路径连接,sub 必须为相对路径且不支持 ..
|
||||
* 路径连接,不支持 ..
|
||||
*/
|
||||
void path_append(char *path, char *sub) {
|
||||
size_t path_len = strlen(path);
|
||||
// 如果 sub 为绝对路径,清空 path
|
||||
if (*sub == '/') {
|
||||
path[0] = '/';
|
||||
path[1] = '\0';
|
||||
while (*sub == '/') sub++;
|
||||
}
|
||||
// 如果 path 不为空,则末尾应该有 '/'
|
||||
size_t path_len = strlen(path);
|
||||
if (path_len > 0) {
|
||||
if (path[path_len - 1] == '/') {
|
||||
path += path_len;
|
||||
@ -333,8 +339,6 @@ void path_append(char *path, char *sub) {
|
||||
path += ++path_len;
|
||||
}
|
||||
}
|
||||
// sub 之前没有 '/'
|
||||
while (*sub == '/') sub++;
|
||||
// 连接路径
|
||||
strcpy(path, sub);
|
||||
path += strlen(sub);
|
||||
|
Loading…
x
Reference in New Issue
Block a user