1

我有一个大学项目,我必须从 kernell 调用中获取 minix os 版本。这就是我的想法(在一些帮助下):

int main (int argc, char *argv[] )
{
    char M3ca1[23];
    message ml;
    m.m_u.m_m1.m3ca1= OS_VERSION;
    char temp=_syscall(MM,69,&m);
    printf("the os version is %c\n",temp);
    return 0;
}

我得到多个错误。

4

1 回答 1

0

此代码可以满足您的要求:

#include <stdio.h>
#include<minix/config.h>

int main(int argc, char**argv) {
    printf("the os version is %s.%s\n",OS_RELEASE,OS_VERSION);
    return 0;
}

如果这是一个大学项目,我怀疑这是对你的要求。确定不是要求您实现一个提供操作系统版本的新系统调用,然后编写一个调用它的小程序吗?

******** 由于最近的评论,多年后编辑***

如果您想从运行的当前而不是静态地获取它,您需要查看 uname(2) 联机帮助页。uname 将为您填写一个包含所有操作系统版本、版本、arch 等的结构。

没有正在运行的 minix 机器来组合/验证快速程序来调用和打印此信息。应该直截了当。可以用示例程序替换本段。

于 2010-04-16T20:37:41.183 回答