Как добавить параметры в системный вызов Linux? - PullRequest
1 голос
/ 26 октября 2019

Я студент колледжа, изучаю ОС.

Я пытаюсь добавить свой собственный системный вызов в ядре 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

Спасибо за все ответы.

...