|
@@ -13,7 +13,6 @@ use crate::{
|
|
|
driver::base::{block::SeekFrom, device::device_number::DeviceNumber},
|
|
|
filesystem::vfs::{file::FileDescriptorVec, vcore as Vcore},
|
|
|
libs::rwlock::RwLockWriteGuard,
|
|
|
- mm::VirtAddr,
|
|
|
process::ProcessManager,
|
|
|
syscall::{
|
|
|
user_access::{self, check_and_clone_cstr, UserBufferWriter},
|
|
@@ -633,7 +632,7 @@ impl Syscall {
|
|
|
///
|
|
|
/// @return 成功,返回的指针指向包含工作目录路径的字符串
|
|
|
/// @return 错误,没有足够的空间
|
|
|
- pub fn getcwd(buf: &mut [u8]) -> Result<VirtAddr, SystemError> {
|
|
|
+ pub fn getcwd(buf: &mut [u8]) -> Result<usize, SystemError> {
|
|
|
let proc = ProcessManager::current_pcb();
|
|
|
let cwd = proc.basic().cwd();
|
|
|
|
|
@@ -645,7 +644,7 @@ impl Syscall {
|
|
|
buf[..cwd_len].copy_from_slice(cwd_bytes);
|
|
|
buf[cwd_len] = 0;
|
|
|
|
|
|
- return Ok(VirtAddr::new(buf.as_ptr() as usize));
|
|
|
+ return Ok(cwd_len + 1);
|
|
|
}
|
|
|
|
|
|
/// # 获取目录中的数据
|