Commit 9e08dc8e authored by Vitaly Lipatov's avatar Vitaly Lipatov

ioctl.c: enconv from koi8-r to utf8

parent dd5107e2
/*
* ioctl.c - , ioctl
* ioctl.c - Пример программы, использующей ioctl для управления модулем ядра
*
* cat, / .
* , ioctl.
* До сих пор мы ползовались командой cat, для передачи данных в/из модуля.
* Теперь же мы должны написать свою программу, которая использовала бы ioctl.
*/
/*
* ioctl
* Определения старшего номера устройства и коды операций ioctl
*/
#include "charbridge.h"
......@@ -16,7 +16,7 @@
#include <errno.h>
/*
* ioctl
* Функции работы с драйвером через ioctl
*/
ioctl_set_msg(int file_desc, char *message)
......@@ -26,7 +26,7 @@ ioctl_set_msg(int file_desc, char *message)
ret_val = ioctl(file_desc, IOCTL_SET_MSG, message);
if (ret_val < 0) {
printf(" ioctl_set_msg: %d\n", ret_val);
printf("Ошибка при вызове ioctl_set_msg: %d\n", ret_val);
exit(-1);
}
}
......@@ -37,20 +37,20 @@ ioctl_get_msg(int file_desc)
char message[100];
/*
* - --
* , .
*
* ioctl :
*
* Внимание - ядро понятия не имеет -- какой длины буфер мы используем
* поэтому возможна ошибка, связанная с переполнением буфера.
* В реальных проектах вам необходимо предусмотреть
* передачу в ioctl двух дополнительных параметров:
* собственно буфера сообщения и его длину
*/
ret_val = ioctl(file_desc, IOCTL_GET_MSG, message,sizeof(message));
if (ret_val < 0) {
printf(" ioctl_get_msg: %d\n", ret_val);
printf("Ошибка при вызове ioctl_get_msg: %d\n", ret_val);
exit(-1);
}
printf(" (get_msg): %s\n", message);
printf("Получено сообщение (get_msg): %s\n", message);
}
ioctl_get_nth_byte(int file_desc)
......@@ -58,7 +58,7 @@ ioctl_get_nth_byte(int file_desc)
int i;
char c;
printf("N- (get_nth_byte): ");
printf("N-ный байт в сообщении (get_nth_byte): ");
i = 0;
while (c != 0) {
......@@ -66,7 +66,7 @@ ioctl_get_nth_byte(int file_desc)
if (c < 0) {
printf
(" ioctl_get_nth_byte %d- .\n", i);
("Ошибка при вызове ioctl_get_nth_byte на %d-м байте.\n", i);
exit(-1);
}
......@@ -76,16 +76,16 @@ ioctl_get_nth_byte(int file_desc)
}
/*
* Main - ioctl
* Main - Проверка работоспособности функции ioctl
*/
main()
{
int file_desc, ret_val;
char *msg = " ioctl\n";
char *msg = "Это сообщение передается через ioctl\n";
file_desc = open("/dev/cbsideA0", 0);
if (file_desc < 0) {
printf(" : %s\n", DEVICE_FILE_NAME);
printf("Невозможно открыть файл устройства: %s\n", DEVICE_FILE_NAME);
printf("With error(%d): %s\n", errno, strerror(errno));
exit(-1);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment