当前位置: 技术问答>linux和unix
wait函数求解,谢谢
来源: 互联网 发布时间:2016-08-27
本文导语: 这是一本入门教程中的代码,在ubuntu可以正确运行,可是wait(pid);,wait的参数应该是int *的为什么传pid_t编译运行,竟然没报错。而且就算没有包含任何头文件,在我的机子上,wait(1)这种看起来很奇怪的语句都能编译...
这是一本入门教程中的代码,在ubuntu可以正确运行,可是wait(pid);,wait的参数应该是int *的为什么传pid_t编译运行,竟然没报错。而且就算没有包含任何头文件,在我的机子上,wait(1)这种看起来很奇怪的语句都能编译并且运行。。这是什么回事。。希望大侠帮忙解释下。。谢谢
#include
#include
#include
#include
int main()
{
int data=0;
pid_t pid;
int choose=0;
while ((choose=getchar())!='q')
{
switch(choose)
{
case '1':
pid=fork();
if(pid 0)
{
printf("data is %dn",data);
}
break;
case '2':
pid=vfork();
if (pid 0)
{
printf("data is%dn",data);
}
break;
default:
break;
}
}
}
|
p.c: In function ‘main’:
p.c:23: 警告:隐式声明与内建函数 ‘exit’ 不兼容
p.c:25: 错误:实参 1(属于 ‘wait’)类型不兼容
p.c:40: 警告:隐式声明与内建函数 ‘exit’ 不兼容
p.c:42: 错误:实参 1(属于 ‘wait’)类型不兼容
人品问题阿。。。。
PS: 你的 gcc 是虾米版本?
p.c:23: 警告:隐式声明与内建函数 ‘exit’ 不兼容
p.c:25: 错误:实参 1(属于 ‘wait’)类型不兼容
p.c:40: 警告:隐式声明与内建函数 ‘exit’ 不兼容
p.c:42: 错误:实参 1(属于 ‘wait’)类型不兼容
人品问题阿。。。。
PS: 你的 gcc 是虾米版本?
|
test.cpp: In function `int main()':
test.cpp:26: error: invalid conversion from `pid_t' to `void*'
test.cpp:26: error: initializing argument 1 of `__pid_t wait(void*)'
test.cpp:43: error: invalid conversion from `pid_t' to `void*'
test.cpp:43: error: initializing argument 1 of `__pid_t wait(void*)'