LINUX.ORG.RU

Re: Как прочитать файл в буфер на уровне ядра?

Что значит "на уровне ядра"?. И какими стандартными методами пользуешься: shell, C++, Perl, Java?

anonymous ()

Re: Как прочитать файл в буфер на уровне ядра?

{ int retRes; char Str[n]; char Cmd[4096]; ... if(GetMicroCode(filename, Str)) { strcpy(Cmd, "cat "); strcat(Cmd, Str); strcat(Cmd, " > /dev/parport0 2>/root/port_debug.txt"); retRes = system(Cmd); } else return -1; if(retRes) printf("Error.\n"); else return 0; } Более менее так... :)

anonymous ()

Re: Как прочитать файл в буфер на уровне ядра?

Voobsheto tebe nikto ne zapreshaet polzovatsya do_open/do_read/do_close t.e. vyzyvat iz yadra sistemnye vyzovy.

master ()

Re: Как прочитать файл в буфер на уровне ядра?

Я думаю, что проще и правильнее будет сделать двух ступенчатую инициализацию:
1) запускается модуль
2) модуль создает устройство /dev/ и/или /procfs/
3) программа запускаемая юзером, inittab и т.д. просто пересылает данные из файла в модуль используя /procfs

Таким образом ты не завязываешся на конкретные вызовы ядра, да и отлаживать будет проще.

Ogr ()

Re: Как прочитать файл в буфер на уровне ядра?

ne sovsem ponyal chto znachit ne zavyazyvaeshsya na konkretnye vyzovy :) tebe pokrainey mere nado budet obsluzhivat zaprosy k sozdannomu failu Hotya soglasen eto dostatochno podrobno opisanno . Sdrugoi storony esli fail nado perechityvat to pridetsya sozdavat svoyu blokirovku hotya ya naverno gonyu dostatochno davno v yadre kovyryalsya i vse pozabyl uzhe :*(

master ()

Re: Как прочитать файл в буфер на уровне ядра?

2master: "ne sovsem ponyal chto znachit ne zavyazyvaeshsya na konkretnye vyzovy", ты завязываешся на конретную FS, а если этот самый микрокод расположен на NFS как ты собираешся стартовать и ждать когда эта самая nfs замонтируется? Не случайно модулям не доступны многие вызовы, потому как модуль должен быть быстрым (чтение через procfs это гарантрует) и быть self-contained, т.е. чем меньше завязок на определенные вызовы тем лучше.

Ogr ()

Чем открыть файл по его номеру индексного дескриптора?

Забавная задачка возникла. Есть CD, на нем названия
файлов по русски. Win давно снес, а файлы нужно
переписать. Как назло часть названий имеет одинаковое
число букв и видны из Линукса как ?????.
При этом система не видит двойников - название одинаковое,
а размеры и прочее берет от первого по списку.
Мне удалось найти номера индексного дескриптора у двойников,
но "open" работает только с именем файла.
Как открыть файл обращаясь только к его номеру индексного дескриптора?
Так чтобы к имени не было промежуточных обращений?

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.