Closed
Description
描述错误
busybox下运行跟进程相关的程序就会出现Segmentation fault,例如waitpid,test-processgroup,test-session
waitpid的内容如下
#include "stdio.h"
#include "stdlib.h"
#include "unistd.h"
#include <sched.h>
#include <sys/wait.h>
#include <assert.h>
int i = 1000;
void test_waitpid(void){
int cpid, wstatus;
cpid = fork();
assert(cpid != -1);
if(cpid == 0){
while(i--);
sched_yield();
printf("This is child process\n");
exit(3);
}else{
pid_t ret = waitpid(cpid, &wstatus, 0);
assert(ret != -1);
if(ret == cpid && WEXITSTATUS(wstatus) == 3)
printf("waitpid successfully.\nwstatus: %x\n", WEXITSTATUS(wstatus));
else
printf("waitpid error.\n");
}
}
int main(void){
test_waitpid();
return 0;
}
请填写您的电脑的信息:
- DragonOS版本:b322121
重现步骤
重现行为的步骤:
- 在busybox下运行进程相关的程序
期望行为
waitpid的正常结果
屏幕截图
其他上下文
waitpid是测例中的部分,参见basic