Получение версии ОС Minix

У меня есть проект для университета, в котором (помимо других) мне нужно получить версию minix os от Kernell Call. Вот к чему я пришел (с некоторой помощью):

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;
}

И я получаю несколько ошибок.

1 ответ

Этот код делает то, что вы просите:

#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;
}

Если это университетский проект, я сомневаюсь, что это то, о чем вас просят. Уверены, что вас не просят реализовать новый системный вызов, который дает версию os, а затем написать небольшую программу, которая вызывает его?

******** Редактировать через много лет из-за недавнего комментария ***

Если вы хотите извлечь это из текущего тока, а не статически, вы должны взглянуть на man-страницу uname(2). uname заполнит структуру для вас всеми версиями ОС, версиями, арками и так далее.

У вас нет работающей мини-машины, чтобы собрать / проверить быструю программу для вызова и печати этой информации. Должно быть прямо вперед. Можно заменить этот абзац примером программы.

Другие вопросы по тегам