я реализовал драйвер символьного CentOS 7. Драйвер работает нормально, когда она вызывается из программы C, ... константы выглядитдрайвера Linux вызывается с неправильным подсчетом
char bytes[8];
int fd = open("/dev/fortuna", O_RDONLY);
if (fd < 0) {
perror("File open error: ");
return -1;
}
int in = read(fd, bytes, 8);
if (in < 0) {
perror("File read error: ");
}
close(fd);
Драйвер функции чтения вызывается с count = 8, и программа завершается без ошибок. Функция драйвера прототип ...
static ssize_t fortuna_read(struct file *filp, char *buff, size_t count, loff_t *offp);
Однако, если чтение вызывается из потока C++, как следует ...
char bytes[8];
std::ifstream in("/dev/fortuna");
if (in.good()) {
in.read(bytes, 8);
}
in.close();
драйвер функция вызывается с кол = 8191. Если драйвер вызывается из Java FileReader, как следует ...
File file = new File("/dev/fortuna");
file.setReadOnly();
FileReader reader = new FileReader(file);
char[] cbuf = new char[8];
int read = reader.read(cbuf);
reader.close();
драйвер чтения функция вызывается с Count = 8192. функции записи ведут себя аналогичным образом.
Google провалил меня. Помогите?
Спасибо, сэр. Ваш ответ привел меня к решению Java. – SteveB