LINUX.ORG.RU

Сообщения Anath

 

Как вывести все секции man для данной страницы

Доброго времени суток. Необходимо вывести все секции страницы, например man fork. Я честно гуглил но не смог найти ключа, который выводил бы только секции. Подскажите пожалуйста, как решить данную задачу? ЗЫ нужны только секции, остальной текст не нужен

Anath
()

QT - не получается работать с сигналами

Пробовал делать по учебнику QT работу с сигналами. Если я правильно понимаю, то для объявления сигналов и слотов нужно вставить слово Q_OBJECT в описании класса.

Пишу что-то вроде

class WatchThread : public QThread
{
public:
    WatchThread();

    void run();

    void get_event (int fd, const char * target);

     Q_OBJECT
signals:
     void writeInfo(char *info);
};

На что мне выдает:

watchthread.o:(.rodata._ZTV11WatchThread[_ZTV11WatchThread]+0x10): undefined reference to `WatchThread::metaObject() const' watchthread.o:(.rodata._ZTV11WatchThread[_ZTV11WatchThread]+0x18): undefined reference to `WatchThread::qt_metacast(char const*)' watchthread.o:(.rodata._ZTV11WatchThread[_ZTV11WatchThread]+0x20): undefined reference to `WatchThread::qt_metacall(QMetaObject::Call, int, void**)' collect2: error: ld returned 1 exit status

Подскажите пожалуйста, что я неправильно делаю?

 , ,

Anath
()

QT - форма перестает отрисовывать

Доброго времени уважаемые форумчане) Буду очень признателен, если кто-нибудь объяснит мне, в чем суть проблемы. Нашел исходник программы, которая отслеживает обращения к выбранному файлу с помощью Inotify. Исходник консольный. Переделал его для QT сперва заменив printf на qDebug() - все отлично работает. Однако мне нужен GUI - поэтому, заменил дебаг на listwidget.InsertItem(). Как только программа начинает отслеживать изменения файла, форма зависает и перестает отрисовываться и реагировать на нажатия. Посколько qDebug нормально работает, я сделал вывод, что просот не до конца понимаю специфику работы GUI приложений. Подскажите пожалуйста, где я упустил что.

Выкладываю код, при котором GUI зависает:

Код:

void Dialog::on_pushButton_clicked()
{
      char *tar2="/home/eugenes/111";
       char target[FILENAME_MAX];
            int fd;
       int wd;   /* watch descriptor */


       ui->listWidget->insertItem(0, QString("!!!Watching"));
          strcpy (target, tar2);
       fd = inotify_init();
       wd = inotify_add_watch (fd, target, IN_ALL_EVENTS);
       fd = inotify_init();

       while (1) {
          get_event(fd, target);
       }

}

void Dialog::get_event (int fd, const char * target)
{
    ssize_t len, i = 0;
    char action[81+FILENAME_MAX] = {0};
    char buff[BUFF_SIZE] = {0};

    len = read (fd, buff, BUFF_SIZE);

    while (i < len) {
       struct inotify_event *pevent = (struct inotify_event *)&buff[i];
       char action[81+FILENAME_MAX] = {0};

       if (pevent->len)
          strcpy (action, pevent->name);
       else
          strcpy (action, target);

       if (pevent->mask & IN_ACCESS)
          strcat(action, " was read");
       if (pevent->mask & IN_ATTRIB)
          strcat(action, " Metadata changed");
       if (pevent->mask & IN_CLOSE_WRITE)
          strcat(action, " opened for writing was closed");
       if (pevent->mask & IN_CLOSE_NOWRITE)
          strcat(action, " not opened for writing was closed");
       if (pevent->mask & IN_CREATE)
          strcat(action, " created in watched directory");

       if (pevent->mask & IN_MODIFY)
          strcat(action, " was modified");
       if (pevent->mask & IN_OPEN)
          strcat(action, " was opened");


       if (pevent->len) printf ("name=%s\n", pevent->name);


       ui->listWidget->insertItem(0, QString(action));

       i += sizeof(struct inotify_event) + pevent->len;

    }

}  /* get_event */

 , ,

Anath
()

Можно ли узнать, какой процесс/пользователь и когда обращались к файлу/папке

С-но, требуется реализовать подобную штуку на лабораторной.

Разумеется, не требуется истории обращений за год, но можно ли отловить эти обращения хотя-бы в реальном времени?

В дирректории proc очень много в файлах про систему хранится, может и эта информация есть? Или нужно будет копать журнал ФС?

Заранее огромное спасибо за помощь.

Anath
()

C++ Как получить информацию о системе

Доброго времени суток. Мне нужно вывести определенную информацию о системе, как то: -Имя процессора, количество ядер, его частота и процент загрузки -Название материнки -Список процессов в системе -количество ОЗУ и ПЗУ и свободное место

Подскажите пожалуйста, какие библиотеки и функции в с++ использовать. ОС Linux

Заранее спасибо (:

 ,

Anath
()

RSS подписка на новые темы