Хобрук: Ваш путь к мастерству в программировании

Перенос приложения с кодом C++ из Solaris в Linux и проблемы с заголовками в реальном времени

Пожалуйста, помогите, я использую инструменты kdevelop и qt4. Например, на моем main.cpp есть ошибки;


Error: sys/procset.h: No such files or directory
Error: sys/priocntl.h: No such files or directory
Error: sys/tspriocntl.h: No such files or directory
Error: sys/rtpriocntl.h: No such files or directory
In function 'int main(int. char**)':
Error: 'pcparms_t' was not declared in this scope
Error: expected ';' before 'pcparms'
Error: 'rtparms_t' was not declared in this scope
Error: 'rtparmsp' was not declared in this scope
Error: 'pcinfo_t' was not declared in this scope
Error: expected ';' before 'pcinfo'
Error: 'rtinfo_t' was not declared in this scope
Error: 'rtinfop' was not declared in this scope
warning: unused variable 'lret'
warning: unused variable 'priority'
...
...
...
*Exited with Status:2 *

Я не могу найти эти заголовки в реальном времени на моем Centos 5 Linux. Кроме того, я не знаю эквивалентности приведенных выше заголовков для Linux. Я знаю, что мне нужно добавить оператор If для Solaris и Linux для включения заголовков, и я не знаю, какие заголовки будут включены в оператор if/else.

Когда я удаляю заголовки, комментируя их, заголовки реального времени и функции для функции реального времени для Solaris, я запускаю ее.


//pcparms_t pcparms;
//rtparms_t *rtparmsp;
//pcinfo_t pcinfo;
//rtinfo_t *rtinfop;

Моя проблема заключается в том, каковы заголовки и функции в реальном времени для Linux или эквивалентные Linux. Код моего приложения представляет собой смесь C++ и qt4. На стороне qt4 им нужно использовать функции реального времени? На С++ от Solaris мне нужны функции реального времени? Если да, то где их найти или как они называются и где их разместить?

11.05.2011

  • Вы сделали locate procset.h или find / | grep "procset.h", чтобы узнать, где находится этот файл? 11.05.2011

Ответы:


1

На самом деле это не вопрос, связанный с QT, а скорее вопрос о переносе Solaris-> Linux.

sys/procset.h
sys/priocntl.h
sys/tspriocntl.h
sys/rtpriocntl.h

Все эти файлы являются специфическими системными вызовами Solaris. Они являются частью priocntlset — общего управления планировщиком процессов.

Из справочной страницы

priocntlset(2)           System Calls           priocntlset(2)

NAME
       priocntlset - generalized process scheduler control

SYNOPSIS
       #include <sys/types.h>
       #include <sys/procset.h>
       #include <sys/priocntl.h>
       #include <sys/rtpriocntl.h>
       #include <sys/tspriocntl.h>
       #include <sys/iapriocntl.h>
       #include <sys/fsspriocntl.h>
       #include <sys/fxpriocntl.h>

       long priocntlset(procset_t *psp, int cmd, /* arg */ ...);

DESCRIPTION
       The priocntlset() function changes the scheduling properties of running
       processes. priocntlset() has the same functions as the priocntl() func-
       tion,  but  a more general way of specifying the set of processes whose
       scheduling properties are to be changed.

NOTES
    Due to the lack of a priocntl() system call on Linux and FreeBSD...

Способы обработки процессов между Solaris и Linux различаются. Обе системы являются вариантами Unix, но конкретные системные вызовы, которые вы ищете, не имеют эквивалента в Linux. В основном priocntlset используется для (пере)планирования процессов. Я не в курсе последней версии ядра Linux или доступных планировщиков, но в любой хорошей книге по ядру 2.6 (или 2.4) есть раздел по планированию с примерами.

Хорошим местом для начала работы на Linux-машине будет man syscalls.

01.06.2011
Новые материалы

5 проектов на Python, которые нужно создать прямо сейчас!
Добро пожаловать! Python — один из моих любимых языков программирования. Если вы новичок в этом языке, перейдите по ссылке ниже, чтобы узнать о нем больше:

Dall-E 2: недавние исследования показывают недостатки в искусстве, созданном искусственным интеллектом
DALL-E 2 — это всеобщее внимание в индустрии искусственного интеллекта. Люди в списке ожидания пытаются заполучить продукт. Что это означает для развития креативной индустрии? О применении ИИ в..

«Очень простой» эволюционный подход к обучению с подкреплением
В прошлом семестре я посетил лекцию по обучению с подкреплением (RL) в моем университете. Честно говоря, я присоединился к нему официально, но я редко ходил на лекции, потому что в целом я нахожу..

Освоение информационного поиска: создание интеллектуальных поисковых систем (глава 1)
Глава 1. Поиск по ключевым словам: основы информационного поиска Справочная глава: «Оценка моделей поиска информации: подробное руководство по показателям производительности » Глава 1: «Поиск..

Фишинг — Упаковано и зашифровано
Будучи старшим ИТ-специалистом в небольшой фирме, я могу делать много разных вещей. Одна из этих вещей: специалист по кибербезопасности. Мне нравится это делать, потому что в настоящее время я..

ВЫ РЕГРЕСС ЭТО?
Чтобы понять, когда использовать регрессионный анализ, мы должны сначала понять, что именно он делает. Вот простой ответ, который появляется, когда вы используете Google: Регрессионный..

Не зря же это называют интеллектом
Стек — C#, Oracle Опыт — 4 года Работа — Разведывательный корпус Мне пора служить Может быть, я немного приукрашиваю себя, но там, где я живу, есть обязательная военная служба на 3..