Форум программистов, компьютерный форум, киберфорум
С под Linux
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C Linux Переделать bash - скрипт https://www.cyberforum.ru/ c-linux/ thread835634.html
Доброго всем! Пожалуйста, помогите выполнить это задание. Для выполнения лабораторной работы берутся задания из лабораторной работы №1 и переделываются на процессы с использованием функций...
C Linux Новый курс «Разработка драйверов устройств в Linux»
Подробности о новом курсе: «Разработка драйверов устройств в Linux». В связи с ростом спроса на квалифицированных Linux-программистов, образовалась ниша, где спрос работодателей превышает...
Как узнать завершился ли процесс-потомок? C Linux
Здраствуйте. Есть родитель который создает несколько потомков посредством вызова функции fork(). Соответственно есть идентификаторы всех процесов-потомков. Мне нужно как-то определять завершился ли...
C Linux Замена букв в файле Народ помогите сделать лабу. Требуется: Написать программу, которая получает со стандартного потока ввода содержимое любого текстового файла и выводит его в стандартный поток вывода, поменяв местами... https://www.cyberforum.ru/ c-linux/ thread833396.html
C Linux Получение названия флешки https://www.cyberforum.ru/ c-linux/ thread832218.html
Даже не знаю как это описать, ну короче можно ли как-то получить название подлюченной флешки. Задача копировать файл с определённым название в директорию, а как реализовать даже не знаю. Идея в том...
Создание Зомби процеса C Linux
#include <stdlib.h> #include <sys/types.h> #include <unistd.h> int main () { pid_t child_pid; child_pid = fork (); if (child_pid > 0) {
C Linux Процент CPU-time процесса
Доброй ночи, форумчане. Как можно получить корректный занимаемый процент процессорного времени процессом? Я понимаю, что это нужный файл с данными лежит в /proc// , но не могу понять конкретно...
C Linux Создание потока, ошибка Написал программу произведение элементов массива с помощью потока (по заданию требуется). Проблема заключается в том, что флаг в функции clone считает как не объявленную переменную (что вроде не... https://www.cyberforum.ru/ c-linux/ thread830339.html
C Linux Как работать в Cygwin? https://www.cyberforum.ru/ c-linux/ thread829370.html
Доброго времени суток ув.форумчани! Прошу извинения если такая тема где то была, но лично я ее не нашел. Подскажите плиз любые источники где можна было бы научится работать в Cygwin? В интернете...
C Linux Ошибка в компиляции Доброго дня. Написал код, при компиляции выдает сообщения на ошибки в строках. Пытался сам разобраться, но не понимаю, что с ними не так. Взял пример из методички и переделал под свое задание.... https://www.cyberforum.ru/ c-linux/ thread829122.html
25 / 25 / 16
Регистрация: 12.04.2013
Сообщений: 73
15.04.2013, 13:04  [ТС] 0

Мониторинг файла

15.04.2013, 13:04. Просмотров 1256. Ответов 5
Метки (Все метки)

Ответ

Все равно не получается...

В файл /../gpio/gpio29/edge заношу значение falling
/../gpio/gpio29/direction -- in
/../gpio/gpio29/active_low -- 0
/../gpio/gpio29/uevent -- пустой файл

Пытаюсь смотреть за изменениями через inotify (смотрю за всей директорией). Взято из примера работы с inotify
Код следующий:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <stdlib.h>
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/inotify.h>
 
#define INT_GPIO_FILE       "/sys/class/gpio/gpio29"
#define EVENT_SIZE          (sizeof (struct inotify_event))
#define EVENT_BUF_LEN       (1024 * (EVENT_SIZE + 16))
 
 
int main (void)
{
    int length, i = 0;
    int fd;
    int wd;
    char buffer[EVENT_BUF_LEN];
 
    // Create inotify instance
    fd = inotify_init ();
    if (fd == -1)
    {
        perror ("Inotify create");
        exit (1);
    }
 
    // adding directory to watching
    wd = inotify_add_watch (fd, INT_GPIO_FILE, IN_ALL_EVENTS);
    length = read (fd, buffer, EVENT_BUF_LEN);
 
    if (length < 0) perror ("read");
 
    while (i < length)
    {
        struct inotify_event *event = (struct inotify_event*)&buffer[i];
        if (event->len)
        {
            printf ("Something hapenns.\n");
        }
        i += EVENT_SIZE + event->len;
    }
 
    inotify_rm_watch (fd, wd);
    close (fd);
 
    return 0;
}
Когда я через команду echo x > ... меняю содержимое файлов в папке /../gpio29 все прекрасно отслеживается. А вот когда меняется уровень на шине - фигушки.

Через watch -n 1 cat /sys/class/gpio/gpio29/value видно, что уровень на шине таки меняется

Может еще что-то где-то надо включить, типа разрешение прерываний?

Вернуться к обсуждению:
Мониторинг файла
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.04.2013, 13:04
Готовые ответы и решения:

Мониторинг папки
написал демона который должен в два потока мониторить две заданые с консоли папки при компиляции...

Мониторинг файла?
Здравствуйте, возникла некоторая проблема в создание программы которая бы выполняла некоторые...

Постоянный мониторинг файла
Добрый день. С php мало знаком, потому пишу на коленке. Целью является при возникновении...

Мониторинг наличия файла
Здравствуйте! необходимо организовать консольное приложение, которое осуществляет мониторинг...

5
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.