Я студент колледжа, изучаю ОС.
Я пытаюсь добавить свой собственный системный вызов в ядре Linux, и я не совсем понимаю, как добавить эти параметры в мой код. Я хочу написать только один системный вызов, но этот вызов должен включать эти параметры. Есть идеи?
Я назову такие параметры.
./systeminfo.out > only CPU information
./systeminfo.out -all > CPU+system statistics
./systeminfo.out -p 1425 > CPU+process detail
./systeminfo.out -all -p 1425 > CPU+sys.statistics+ps.detail
это мой код (без параметров)
asmlinkage long sys_systeminfo(void)
{
FILE *fPointer;
char singleLine[255];
printk("CPU Information: \n");
if((fPointer=fopen("\\proc\\cpuinfo","r"))!=NULL)
{
int i = 0;
while(i<8){
fgets(singleLine, 50,fPointer);
puts(singleLine);
i++;
}
}
else{
printk("file not found !");
}
fclose(fPointer);
return 0;
}
Пример вывода должен быть таким, если использовались два параметра:
CPU Information:
vendor_id : xx
cpu family : xx
model : xx
model name : xx
Parameter#[process_id]-Process Information:
name: xx
state: xx
uid : xx
pid : xx
ppid : xx
arameter#all-System Statistics:
system was booted since : xx
system has been idle since : xx
the number of active tasks : xx
the total number of processes : xx
Спасибо за все ответы.