难道main函数的返回值类型只能是int型的吗?
#include <stdio.h>
#include <sys/types.h>
#include <sys/msg.h>
#include <sys/ipc.h>
#define MSGKEY 75
struct msgform
{
long mtype;
char mtext[1030];
}msg;
int msgqid,i;
void CLIENT()
{ int i;
msgqid=msgget(MSGKEY,0777);
for (i=10;i>=1;i--)
{
msg.mtype=i;
printf("(client)sent \n");
msgsnd(msgqid,&msg,1024,0); /*发送消息msg入msgid消息队列*/
}
exit(0);
}
void SERVER()
{
msgqid=msgget(MSGKEY,0777|IPC_CREAT); /*由关键字获得消息队列*/
do
{
msgrcv(msgqid,&msg,1030,0,0); /*从msgid消息队列接收消息msg*/
printf("(server)received \n");
}while(msg.mtype!=1); /*消息类型为1时,释放队列*/
msgctl(msgqid,IPC_RMID,0);
exit(0);
}
void main()
{
while((i=fork())==-1);
if(!i) SERVER();
while((i=fork())==-1);
if(!i) CLIENT();
wait(0);
wait(0);
}
这是进程间通信的实验,编译时警告main的返回值类型不是int,我把类型改成int之后最后加句return 0;就没有错误了。是不是main函数只能是int类型啊?return语句要吗?
还有隐式声明与内建函数‘exit'不兼容,是不是加头文件<stdlib.h>就行了?我这不是Linux系统,烦哪位高人运行一下指点一番,不胜感激……
是用Linux在实验室做的实验,现在我没有Linux系统。 还有exit与隐式声明怎么办。 可不可以给咱在Linux平台下运行一下?给个确定的答案,谢啦。 各位大侠不要误解我的意思,我是想修改的更好,没有一点错误的。。