From 4da3758acf0327d429dfce3d313b50c2e0fc7723 Mon Sep 17 00:00:00 2001 From: Chiichen <39649411+Chiichen@users.noreply.github.com> Date: Wed, 2 Aug 2023 14:29:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86wait4=E7=9A=84?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E6=8A=A5=E9=94=99=20(#312)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 修复了wait4的异常报错 --- kernel/src/process/syscall.rs | 5 +++-- user/libs/libc/src/include/export/unistd.h | 6 ++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/kernel/src/process/syscall.rs b/kernel/src/process/syscall.rs index 3bbba927..dd71b106 100644 --- a/kernel/src/process/syscall.rs +++ b/kernel/src/process/syscall.rs @@ -41,8 +41,9 @@ impl Syscall { ) -> Result { let ret = unsafe { c_sys_wait4(pid, wstatus, options, rusage) }; if (ret as isize) < 0 { - return Err(SystemError::from_posix_errno(-(ret as isize) as i32) - .expect("wait4: Invalid errno")); + return Err( + SystemError::from_posix_errno((ret as isize) as i32).expect("wait4: Invalid errno") + ); } return Ok(ret as usize); } diff --git a/user/libs/libc/src/include/export/unistd.h b/user/libs/libc/src/include/export/unistd.h index e3f599a6..e5f1dbfd 100644 --- a/user/libs/libc/src/include/export/unistd.h +++ b/user/libs/libc/src/include/export/unistd.h @@ -120,6 +120,12 @@ int rm(const char * path); */ void swab(void *restrict src, void *restrict dest, ssize_t nbytes); +/** + * @brief 创建pipe + * @param fildes 分别是读端fildes[0]和写端fildes[1] + */ +int pipe(int fildes[2]); + pid_t getpid(void); int dup(int fd);