Linux内核编译 系统调用

本文详细描述了作者如何在CentOS7(内核3.10.0)环境中编译从Linux官网下载的4.19.34内核,并使用C语言编写了一个测试程序,演示如何获取和设置进程优先级及nice值,包括错误处理部分。
摘要由CSDN通过智能技术生成

内核编译请参考Ubuntu环境内核编译

本人是在CentOS7环境(内核版本3.10.0)中编译从linux内核官网下载的4.19.34内核。

内核程序和https://www.cnblogs.com/tsruixi/p/10777242.html一样,都是获取或者设置进程优先级和nice值。

本人的测试程序如下:

#include<unistd.h>
#include<sys/syscall.h>
#include<stdio.h>
#define _SYSCALL_MYSETNICE_ 335
#define EFALUT 14

int main()
{
    int pid, flag, nicevalue;
    int pre_prio, pre_nice, cur_prio, cur_nice;
    int result;

    pre_prio = 99;
    pre_nice = 99;
    cur_prio = 99;
    cur_nice = 99;

    printf("Hello, welcome to Lab1 syscall\n");
    printf("Please input pid, flag and nicevalue:\n");
    scanf("%d%d%d", &pid, &flag, &nicevalue);
    printf("pid:[%d]  flag:[%d] nicevalue:[%d]\n", pid, flag, nicevalue);

    result = syscall(_SYSCALL_MYSETNICE_, pid, 0, nicevalue, &pre_prio, &pre_nice);
    if (result == EFALUT)
    {
        printf("Get priority and nice vlaue failed!");
        return 1;
    }
    printf("pid:[%d], prio:[%d], nice:[%d]\n", pid, pre_prio, pre_nice);
    if (flag == 1)
    {
        syscall(_SYSCALL_MYSETNICE_, pid, 1, nicevalue, &cur_prio, &cur_nice);
        printf("Current priority is:[%d], current nice value is [%d]\n", cur_prio, cur_nice);
    }
    return 0;
}
 

结果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值