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) {
|
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 不为空,则末尾应该有 '/'
|
// 如果 path 不为空,则末尾应该有 '/'
|
||||||
|
size_t path_len = strlen(path);
|
||||||
if (path_len > 0) {
|
if (path_len > 0) {
|
||||||
if (path[path_len - 1] == '/') {
|
if (path[path_len - 1] == '/') {
|
||||||
path += path_len;
|
path += path_len;
|
||||||
@ -333,8 +339,6 @@ void path_append(char *path, char *sub) {
|
|||||||
path += ++path_len;
|
path += ++path_len;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// sub 之前没有 '/'
|
|
||||||
while (*sub == '/') sub++;
|
|
||||||
// 连接路径
|
// 连接路径
|
||||||
strcpy(path, sub);
|
strcpy(path, sub);
|
||||||
path += strlen(sub);
|
path += strlen(sub);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user