4

我使用内存段编写程序,但问题是我的 wait() 给我一个错误

错误:

ks.c:24:2: error: incompatible type for argument 1 of ‘wait’
/usr/include/x86_64-linux-gnu/sys/wait.h:116:16: note: expected ‘__WAIT_STATUS’ but argument is of type ‘int’
s.c:13:6: warning: unused variable ‘w’ [-Wunused-variable]

代码行很简单wait(1); ,我已经为项目包含了所有必需的 ehaders 为什么我会收到那个错误,因为它应该像这样工作......导入

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <sys/wait.h>
#include <errno.h>
#include "st.h"
4

4 回答 4

4

如果您检查文档wait,它作为参数的参数是一个指向 int设置状态的指针。由于这是家庭作业,我会让你自己总结解决方案。

于 2012-06-07T17:32:55.760 回答
2

如果您查看手册页等待它需要一个指向整数的指针。

所以你的代码应该是这样的

int status;
wait(&status);
于 2012-06-07T17:33:53.383 回答
0

wait 函数实际上接受一个指向 int 的指针,并在该指针中返回线程子进程的退出状态。

尝试这样的事情

 int status;
 wait(&status);
于 2012-06-07T17:34:24.787 回答
0
于 2012-06-07T17:45:38.393 回答