memcpy 复现

This commit is contained in:
KAAAsS 2022-04-21 22:26:27 +08:00
parent 50da90a75f
commit 54f32e597f
Signed by: KAAAsS
GPG Key ID: D22F53AF662411FE
3 changed files with 21 additions and 2 deletions

View File

@ -418,6 +418,14 @@ int fs_read(char *path, off_t offset, ssize_t count) {
return ret;
}
void memcpy2(void *dst, const void *src, u64 len)
{
u64 i = 0;
for (; i < len; i += 1) {
((u8 *) dst)[i] = ((u8 *) src)[i];
}
}
/**
*
*/
@ -454,8 +462,16 @@ int fs_read_all(char *path, void **ret_buf)
return cur;
}
// FIXME: 此处在 Release 模式下第一次读取前 16 字节为空
memcpy(buf, (const void *) TMPFS_READ_BUF_VADDR, cur);
memcpy(buf, (const void *) TMPFS_READ_BUF_VADDR, cur);
// memcpy(buf, (const void *) TMPFS_READ_BUF_VADDR, cur);
printf("first bytes: %c %c\n", ((u8*) TMPFS_READ_BUF_VADDR)[0],
((u8*) TMPFS_READ_BUF_VADDR)[1]);
printf("memcpy %x %x %d\n", buf, (const void *) TMPFS_READ_BUF_VADDR, cur);
memcpy2(buf, (const void *) TMPFS_READ_BUF_VADDR, cur);
// u64 i = 0;
// for (; i < cur; i += 1) {
// ((u8 *) buf)[i] = ((u8 *) TMPFS_READ_BUF_VADDR)[i];
// }
pos += cur;
buf += cur;
}

View File

@ -43,6 +43,8 @@ int main()
usys_fs_load_cpio(CPIO_BIN);
boot_fs();
builtin_cmd("cat tar/cat_test.txt");
return 0;
test_readline();
test_echo();

View File

@ -1,4 +1,5 @@
#include <lib/type.h>
#include "print.h"
/*
* A very shabby implementation, optimize it if you like.