linux的uapi文件夹,【linux】Linux kernel uapi header file(用户态头文件)
uapi目录的创建原因
Linux在3.7以后把很多header file移到 include/uapi或是arch/xxxx/include/uapi下,为了解决include recursive(循环包含头文件)的问题。
英文参考文档:https://lwn.net/Articles/507794/
解决include recursive问题的方法
例如:在A.h中inline function时发现里面用到的某些struct定义在B.h中,而B.h中又有inline function需要用到A.h中的struct,就会造成循环包含recursive include
uapi的创建
把userspace API的文件独立到 include/uapi跟arch/xxxx/include/uapi下,
举例来说本来header中
/* Header comments (copyright, etc.) */
#ifndef _XXXXXX_H /* Guard macro preventing double inclusion */
#define _XXXXXX_H
[User-space definitions]
#ifdef __KERNEL__
[Kernel-space definitions]
#endif /* __KERNEL__ */
[User-space definitions]
#endif /* End prevent double inclusion */
换成如下两个文件
a. kernel space的东西放在原本路径下
/* Header comments (copyright, etc.) */
#ifndef _XXXXXX_H /* Guard macro preventing double inclusion */
#define _XXXXXX_H
#include [Kernel-space definitions]
#endif /* End prevent double inclusion */
/* Header comments (copyright, etc.) */
b. uapi目录下创建同名文件
#ifndef _UAPI__XXXXXX_H /* Guard macro preventing double inclusion */
#define _UAPI__XXXXXX_H
[User-space definitions]
#endif /* End prevent double inclusion */
好处
减少与简化kernel-only header的size;
现在kernel header有的是文件中一部分export给userspace用。这样做简化了头文件间的交互相依性。
处理用户态的人更容易追踪API的变更,透过git来追踪uapi下的log更容易在每个kernel的释放版本中知道做了那些修改
转发自:http://vh21.github.io/linux/2014/11/21/linux-kernel-uapi-include-file.html
linux的uapi文件夹,【linux】Linux kernel uapi header file(用户态头文件)相关推荐
- 【linux】Linux kernel uapi header file(用户态头文件)
uapi目录的创建原因 Linux在3.7以后把很多header file移到 include/uapi或是arch/xxxx/include/uapi下,为了解决include recursive( ...
- 文件夹拷贝,判断,生成当前用户权限的文件夹
使用到的API: CreateDirectory:创建目录 FindFirstFile,FindNextFile 查找文件 RemoveDirectory:删除空目录 GetFileAttribute ...
- Windows中文件夹与linux中目录的区别
如果你最开始使用的是 Windows 电脑,你很可能会使用"文件夹folder"这个术语.但当你换到 Linux 时,你会发现文件夹通常被称为"目录directory&q ...
- linux创建目录无权限,linux下文件夹权限 linux 创建文件夹没有权限
linux 给所有文件下文件加权限 更改文件用户组.使用命令chgrp,命令如下. 更改文件所有者.使用命令chown. chown命令可以同时修改所有者和用户组名称(即拥有chgrp的功能),命令如 ...
- 终端打开文件夹(Window/Linux/macOS)
终端打开文件夹(Window/Linux/macOS) Winodw explorer path Linux nautilus path macOS open path 注意Window端文件路径里面 ...
- linux查找以c开头的的文件夹,【Linux】 find指令(文件查找)
每一种操作系统都有成千上万的文件组成,对于linux这样"一切皆文件"的操作系统来说更不例外,大家应该都能很轻松使用windows下的文件查找功能,但是对linux这一功能可能并不 ...
- Linux下文件和文件夹同名冲突,为什么出现两个一模一样的同名文件或文件夹?
为什么出现两个一模一样的同名文件或文件夹?如何辨别真伪?相信很多网友都碰到这样的怪现象吧,下面我就为大家介绍一下造成这种现象的原因,不懂的朋友可以过来参考一下,来看看吧 你是否遇到过这种怪现象:在同一 ...
- python遍历目录压缩文件夹然后在发送邮件_python目录操作之python遍历文件夹后将结果存储为xml...
Linux服务器有CentOS.Fedora等,都预先安装了Python,版本从2.4到2.5不等,而Windows类型的服务器也多数安装了Python,因此只要在本机写好一个脚本,上传到对应机器,在 ...
- Python 连接FTP服务器并实现文件夹下载实例演示,python区分ftp目录下文件和文件夹方法,ftp目录下包含中文名问题处理
Python 连接 FTP 服务器并实现文件夹下载实例演示 第一章:连接 FTP 服务器并实现文件夹下载 ① 连接 FTP 服务器 ② 进入指定目录并显示文件信息 ③ 区分文件和文件夹名 ④ 文件夹名 ...
- 怎样清除手机中的html文件夹,怎么彻底清除手机APP卸载后的残留文件夹 能删与不能删文件名...
手机里的文件和手机下载了app之后,即使卸载,也很容易有垃圾残留,而且占用的空间还挺多,但是根本不知道哪些是垃圾,要怎么清除这些垃圾? 一般清理垃圾软件,如360,腾讯管家等可以清除手机缓存, ...
最新文章
- python将二维列表内容写入和读取.csv文件
- 如何在Vim中复制到剪贴板?
- 使用swipemenulistview实现列表的左右滑动
- 数据采集中的采样率、缓冲区大小以及,每通道采样数之间的关系
- 什么是1st tier conference?
- Wildfly 8.0通过其JAXRS 2.0实现提供了无缝的JSON支持。
- 微信小程序云数据库带换行的文本保存和获取
- java编程编一个小系统_如何编写一个java学生信息管理系统?
- Java基础Arrays类
- QML Item定位器 Anchor
- 00 - JavaScript 简介
- roundcube db.inc.php,开源电子邮件系统(Roundcube Webmail)
- 国产linux系统 深度6,国产Linux系统深度Deepin体验
- 如何利用官方SDK文件来辅助开发?
- python训练好的图片验证_Python图片验证码降噪处理实例
- android手机如何隐藏应用程序,三星手机怎么隐藏图标/软件 三星隐藏应用程序设置方法...
- 学习FPGA绝佳网站推荐
- 如何用SPSS计算个人BMI值?
- 【网络】无线相关名词解释:RSSI、RSRP、SNR
- 如何构建可持续的ChatGPT高性能服务器端架构?
热门文章
- ASP.NET MVC 3和Razor中的@helper
- 使用DPM2007来保护企业数据
- Layer 7 过滤 (官网介绍)
- 如何在JPG或BMP图片上显示输入的订单数据内容,并在报表打印时显示出来,后台数据库是SQL SERVER 2000 ,先谢了.高分!...
- 浅谈 Mybatis 中的 ${ } 和 #{ }的区别
- 联想万全服务器告警信息在哪里看,华为网络设备查看告警信息
- 关于如何理解链表结构体指针引用LinkNode * L的问题
- pyppeteer-比 selenium 更高效的爬虫利器
- python提供了什么函数进行格式化输出_python print函数格式化输出
- gitee java pdf转图片_openOffice word转pdf,pdf转图片优化版