170 похожих чатов

Можно как-то прочитать структуру input_event (из <linux/input> не прибегая к

С, а с помощью С++?

23 ответов

24 просмотра

"хороший" вопрос. что есть "прочитать"?

Anton-Sheverda Автор вопроса
Anatoly Shirokov
"хороший" вопрос. что есть "прочитать"?

У меня есть девайс на /dev/input/event0, я хочу его прочитать, но для этого нужно использую структуру input_event. Как в неё писать не используя функции типа read где параметром идут void* buf

Anton Sheverda
У меня есть девайс на /dev/input/event0, я хочу ег...

Там аби у си и си++ в этом плане одинаковое

Anton Sheverda
У меня есть девайс на /dev/input/event0, я хочу ег...

так или иначе это набор байт, который структуируется в input_event

Anton Sheverda
Как это сделать силами с++?

если все требования по выравниваю, по размерам базовых типов, по big/little endian соблюдены и в твоем устройстве ровно то, что в конечном итоге окажется в полях твоей структуры, то читай: input_event event {0}; device.read(&event, sizeof(event));

Можно. Просто читай так же как на С, но на С++.

Anton-Sheverda Автор вопроса
Ilya Zviagin
Ты на С можешь?

Не могу, а я понял весь Линукс апи на с.

Anton Sheverda
Не могу, а я понял весь Линукс апи на с.

Так в чём проблема? Покажи реализацию на C, которая работает, и на C++, которая не работает.

Anton Sheverda
Не могу, а я понял весь Линукс апи на с.

Да, API всех OS на C, представляешь?

Anton Sheverda
Не могу, а я понял весь Линукс апи на с.

С++ в общении с OS не даст тебе никаких плюсов относительно С, если только не существует какой-то высокоуровневой библиотеки на С++, которая работает с этим аспектом API этой OS

Anton-Sheverda Автор вопроса
Vitalii
Так в чём проблема? Покажи реализацию на C, котора...

C -> read(int fd, void *buffer, size_t count) Дальше мне нужно в него поместить структуру input_event из LinAPI С -> read(fd, &input_event, sizeof(struct input_event)) C++ -> read(char_type *s, streamsize) Как мне запихнуть первое во второе?

Anton Sheverda
C -> read(int fd, void *buffer, size_t count) Даль...

ты откуда второе взял вообще?

Anton-Sheverda Автор вопроса
Kirill Bolshakov
ты откуда второе взял вообще?

Нет, из LINUX API по работе с файлами

Anton Sheverda
Нет, из LINUX API по работе с файлами

read(char_type *s, streamsize) вот это откуда взял?

Anton-Sheverda Автор вопроса
Anton-Sheverda Автор вопроса
Kirill Bolshakov
> LINUX API > ifstream

Мой вопрос и заключался в том, что можно как-то считывать /dev/input без LINUX API который на С, а решить вопрос С++

Anton Sheverda
Мой вопрос и заключался в том, что можно как-то сч...

Так то можно, но через обёртку, которая внутри всё равно Сишную функцию зовёт

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта