c - WSL:功能未实现



我知道wsl使用翻译从Windows内核执行的每个命令,但仍然,我的问题是:
wsl是否支持系统调用(例如消息队列),如果是,如何?

我得到了"函数未实现"每当使用任何消息队列函数时都会出错。还有希望吗?

(编辑:)

int main(int argc,char* argv[]){ 
key_t key=MSG_KEY;
mqid=msgget(key,0660 | IPC_CREAT );
if(mqid==-1){
perror("msgget error:");
printf(" %s",strerror(errno));
}
int lenght=0,n=0;
lenght=msgrcv(mqid,&req,MAX,1,0);
if(lenght==-1){      
if (errno == ENOMSG)
{
printf("nNo message in the queuen");
}
else
{
printf("nError receiving message: %sn", strerror(errno));
}
}
else
{
printf("Received a messagen");
}
printf("nreceived %d number of bytesn",n);
msgctl(mqid,IPC_RMID,NULL); 
return 0;
}

WSL(1)中缺少System V IPC,这就是msgctl所属的。

https://github.com/microsoft/WSL/issues/1016

最新更新