LINUX.ORG.RU
Что значит "на уровне ядра"?. И какими стандартными методами пользуешься: shell, C++, Perl, Java?
anonymous
()
Ответ на: комментарий от anonymous
Пишу драйвер устройства. Прежде чем с ним можно работать, надо записать микрокод из файла в некоторый порт.
Usenko ★
() автор топика
{ 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
()
Ответ на: комментарий от anonymous
Стандартные библиотеки использовать нельзя. В модуле ядра можно использовать только функции ядра.
Usenko ★
() автор топика
Voobsheto tebe nikto ne zapreshaet polzovatsya do_open/do_read/do_close t.e. vyzyvat iz yadra sistemnye vyzovy.
master ★
()
Я думаю, что проще и правильнее будет сделать двух ступенчатую инициализацию:
1) запускается модуль
2) модуль создает устройство /dev/ и/или /procfs/
3) программа запускаемая юзером, inittab и т.д. просто пересылает данные из файла в модуль используя /procfs

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

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

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