opstestO. ops_test2, ops_test4. a następnie zainicjalizowano je adresami odpow iednich funkcji obsługi urządzeń. Przedstaw iono funkcję inicjalizacji sterownika test init module oraz fragment funkcji otwierania urządzenia test_opcn (wspólnej dla wszystkich trzech urządzeń). Uzupełnić funkcję testopen tak. żeby ustaw iała ona odpowiedni zestaw funkcji dla otwieranego pliku na podstaw ie numeru podrzędnego_
static int test_init_module( void)
{
if (register_chrdev( 80, „TEST", &ops testO))
{
printk( KERN_WARNING „register_chrdev error\n"); return -EIO;
)
else
{
printk( KERN_WARNING „ok\n") return 0;
test_open( struct inode* ino, struct file* filep)
J_
Return 0;
5. W pliku /tmp/testproc.c zapisano kod programu przedstawionego poniżej. Program skompilowano w tym samym katalogu do pliku a.out. Następnie w tym samym katalogu uruchomiono program (podając 2 argumenty) poleceniem ./a.out 1234 abed . W wyniku wykonania się programu na ekranie pojawiłsię napis
_22593 3 4_
/tmp/protest.c_
#include <unistd.h> łinclude <fcntl.h>
int main ( int arge, char *argv)
{
int p, c, x; p = getpid();
c - open( „a.out", 0_RD0NLY); x - open( „testproc.c", 0_RD0NLY); printf( „%d %d %d", p, c, x); sleep(60); return 0;
Należy uzupełnić poniższą tabele opisującą wybrane elementy systemu /proc dla opisanego wcześniej procesu
Nazwa podkatalogu zaw ierającego opis procesu | |
Zawartość odpowiedniego pliku cnidline | |
Zawartość odpowiedniego pliku cwd | |
Zawartość odpow iedniego pliku exc | |
Zawartość odpow iedniego pliku fd/0 | |
Zawartość odpowiedniego pliku fd/3 | |
Zawartość odpow iedniego pliku fd/4 |