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

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

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

23 ответов

21 просмотр

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

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
Мой вопрос и заключался в том, что можно как-то сч...

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

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

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

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
5
Карта сайта