zoukankan      html  css  js  c++  java
  • linux C 调用系统接口卸载模块 范例

    代码
    #include <stdio.h>
    #include 
    <stdlib.h>
    # include 
    <sys/syscall.h>    // syscall() , __NR_init_module
    #include <sys/stat.h>
    #include 
    <errno.h>               // ENOEXEC

    #include 
    <fcntl.h>        // O_RDONLY 
    #include <sys/mman.h>    // PROT_READ , MAP_PRIVATE , MAP_FAILED

    # define init_module(mod, len, opts) syscall(__NR_init_module, mod, len, opts)
    # define delete_module(mod, flags) syscall(__NR_delete_module, mod, flags)

    #define MPI_NAME "ct_def"    //

    void moderror(int err)
    {
        
    switch (err) {
        
    case -1/* btw: it's -EPERM */
            printf(
    "no such module");
            
    return;
        
    case ENOEXEC:
            printf( 
    "invalid module format");
            
    return;
        
    case ENOENT:
            printf( 
    "unknown symbol in module, or unknown parameter");
            
    return;
        
    case ESRCH:
            printf(
    "module has wrong symbol version");
            
    return ;
        
    case ENOSYS:
            printf(
    "kernel does not support requested operation");
            
    return ;
        
    default :
            printf(
    "unknown errcode(%d)",err);
            
    return ;
        }
    }

     

     



    int main(void )
    {
        unsigned flags 
    = O_NONBLOCK | O_EXCL;
        
    int ret;

        errno
    =0;
        ret
    =delete_module(MPI_NAME, flags);
               
    if (ret != 0) { 
            printf(
    "cannot rmmod  : ");
            moderror(errno);
            printf(
    "\n ");
        }
        printf(
    "removed\n");
        
    return 0;
    }

     

    错误的码的定义在Linux/include/asm-generic/errno-base.h 文件中

     

     


  • 相关阅读:
    hash表及带注释插头dp
    NOIP模拟测试9「随·单·题」
    静态点分治总结
    NOIP模拟测试8「匹配·回家」
    NOIP模拟测试8「寿司」
    「PKUWC2018」Slay the Spire
    矩阵快速幂总结
    SQL中的object_id函数
    SQL数据库Replace的用法
    SQL批量提交修改业务
  • 原文地址:https://www.cnblogs.com/leaven/p/1717791.html
Copyright © 2011-2022 走看看