首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux API 揭秘】container_of函数详解

Linux API 揭秘】container_of函数详解 1、container_of函数介绍 container_of可以说是内核中使用最为频繁的一个函数了,简单来说,它的主要作用就是根据我们结构体中的已知的成员变量的地址...:container_of 文件位置:include/linux/container_of.h 该函数里面包括了一些封装好的宏定义以及函数,比如:static_assert、__same_type、offsetof..._Static_assert(expr, msg) 函数名称:static_assert 文件位置:include/linux/build_bug.h 函数解析:该宏定义主要用来 在编译时检查常量表达式...:__same_type 文件位置:include/linux/compiler.h 函数解析:该宏定义用于检查两个变量是否是同种类型 __builtin_types_compatible_p:gcc的内建函数...:offsetof 文件位置:include/linux/stddef.h 函数解析:该宏定义用于获取结构体中指定的成员,距离该结构体偏移量。

33010
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Linux系统调用API】五、link系列函数

    1. link函数 包含头文件 #include 函数原型 int link(const char *oldpath, const char *newpath); 函数功能 link...函数参数 oldpath:源文件名(路径) newpath:硬链接文件名(路径) 函数返回值 成功返回0。On success, zero is returned....2. symlink函数 包含头文件 #include 函数原型 int symlink(const char *oldpath, const char *newpath); 函数功能...读取软链接,这个函数只能读取软链接,不能读取硬链接。 函数参数 path:连接名(路径) buf:缓冲区(缓存读出的数据) bufsiz:缓冲区大小 函数返回值 成功返回缓冲区被填充的大小。...(注意同名命令unlink,查询函数man手册时要加章节2) 函数参数 pathname:链接名,也可以是文件名 函数返回值 成功返回0。

    5410

    Linux系统调用API】一、open与close函数

    一、系统API与C库函数的调用关系 当我们在C语言程序中调用一个库函数的时候,比如调用printf()函数,实际上它是通过文件指针来指向要打印的位置的。...并且,printf()函数会调用Linux的系统函数write()函数(它是一个系统接口,也可以人工调用),write()函数再继续调用sys_write()函数(这个函数只能是操作系统去调用),sys_write...在系统API中,主要包含了这些函数:与文件IO相关的函数接口(比如open(),close(),write(),read()等);与文件属性相关的函数;与目录操作相关的函数;与目录遍历相关的函数;还有dup...表示查看第二章,也就是系统调用API。...,只不过我们在平时的学习中可能很少用到,main的返回值是int类型的,main函数的参数在Linux下编程用的还是比较多的。

    12110

    Linux系统调用API】三、进程地址虚拟空间、fcntl函数、stat函数

    二、fcntl函数 1. 阻塞与非阻塞 阻塞可能会发生在read()函数读取设备、读取管道或读取网络的时候,因为某种情况需要等待,而不会立即返回,叫做阻塞。...我们先写一个测试函数来看一下阻塞的效果,让read()函数读取标准输入输出设备tty的内容,如果标准输入输出没有内容的话,read()函数就会被阻塞,直到tty有内容了,才会继续执行。...因为是非阻塞,所以函数体内的循环会一直执行无限循环,所以要加一个睡眠函数,防止刷屏。...On Linux this command can only change the O_APPEND, O_ASYNC, O_DIRECT, O_NOATIME, and O_NONBLOCK flags...穿透与非穿透 上面介绍了stat函数并通过stat函数实现了 ls -l 命令的功能。我们上面演示了使用自己实现的 ./mls 查看文件信息,假如说使用 .

    10210

    tensorflow常用函数API介绍

    摘要:本文介绍了tensorflow的常用函数。 1、tensorflow常用函数 TensorFlow 将图形定义转换成分布式执行的操作, 以充分利用可用的计算资源(如 CPU 或 GPU。...x : y) tf.cos(x, name=None) 三角函数cosine tf.sin(x, name=None) 三角函数sine tf.tan(x, name=None) 三角函数tan tf.atan..., name=None) 以6为阈值的整流函数:min(max(features, 0), 6) tf.nn.elu(features, name=None) elu函数,exp(features) –.../ (1 + exp(-x)) tf.tanh(x, name=None) 双曲线切线激活函数 卷积函数(Convolution) 操作 描述 tf.nn.conv2d(input, filter,...API介绍的文章就介绍到这了,更多相关tensorflow常用函数内容请搜索ZaLou.Cn以前的文章或继续浏览下面的相关文章希望大家以后多多支持ZaLou.Cn!

    1.1K10

    linux中getchar函数用法,linux getchar函数使用

    1 函数介绍 1) 函数原型 int getchar(void); 2) 函数功能 从stdin中读取一个字符。 3) 返回值 返回读取字符的ASCII值或者EOF字符或者出错值。...4) 头文件 #include 2 函数使用 2.1 getchar函数的特点 Linux下编写的一个例子: #include int main(void) { char ch; int num...重新编译并运行程序,输入字符串:hello[回车] 得第一次运行结果 当程序首次执行到while中的getchar时,getchar函数等待用户的输入,getchar函数一直等待用户输入,当用户按下回车表示用户输入完毕...getchar函数读取,因为while循环的条件已经为假)并得到以下输出界面 String输入字符串的长度为6在一次表明getchar读取了用户输入的回车。...3 额外总结 函数本身的特性与语句条件限制两者各自带来的作用需要分清楚。 Note Over。 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

    3.1K30

    FreeRTOS(七):任务相关 API 函数

    上一篇学习了 FreeRTOS 的任务基础知识,本文就正式学习如何使用 FreeRTOS 中有关任务的 API 函数。 先学习怎么用,先知其然,后面在知其所以然。...1、任务创建和删除 API 函数 xTaxkCreate():创建一个任务,任务需要 RAM 来保存与任务有关的状态信息(任务控制块),任务也需要一定的 RAM 来作为任务堆栈。...此函数原型如下: 2、任务挂起和恢复 API 函数 有时候我们需要暂停某个任务的运行,过一段时间以后在重新运行。这个时候要是使用任务删除和重建的方法的话那么任务中变量保存的值肯定丢失了!...FreeRTOS 的任务挂起和恢复 API 函数如表所示: vTaskSuspend():此函数用于将某个任务设置为挂起态,进入挂起态的任务永远都不会进入运行态。...FreeRTOS 中任务相关的 API 当然不止有这几个,还有很多其他 API,我们在下一篇文章再讲解。但大部分情况下,我们要用的就只有这几个 API:创建、挂起、恢复、删除,就四个。

    54010

    函数编程:强大的 Stream API

    函数编程:强大的 Stream API 图片 每博一文案 只要有人的地方,世界就不会是冰冷的,我们可以平凡,但绝对不可以平庸。...第一个便是 Lambda 表达式,想要进一步了解的大家可以移步至 函数式编程:Lambda 表达式_ChinaRainbowSea的博客-CSDN博客 ;另外一个则为是我们这个主题了:Stream API...Stream API 是在 java.util.stream 包下的,Stream 是把真正的函数式编程 风格引入到 Java 中,这时目前为止对 java 类库最好的补充了,因为 Stream API...执行的数据库查询 也可以使用 Stream API 的来并行执行操作。...extends R> mapper) 接收一个函数作为参数,该函数会被应用到每个元素上,并将其映射成一个新的元素。 注意: 返回的是一个新的对象,不会修改原本的数据信息的。

    81250

    FreeRTOS(十一):其他任务 API 函数

    学过了 FreeRTOS 的任务管理,但是真正涉及到的与任务相关的 API 函数只有那么几个:任务的创建、删除、挂起、恢复。...FreeRTOS 还有很多与任务相关的 API 函数,不过这些 API 函数大多都是辅助函数了,本文我们就来看一下这些与任务相关的其他的 API 函数。...1、函数 uxTaskPriorityGet() 此函数用来获取指定任务的优先级,要使用此函数的话宏 INCLUDE_uxTaskPriorityGet 应 该定义为 1。...16、函数 vTaskList() 此函数会创建一个表格来描述每个任务的详细信息。...18、函数 vTaskSetApplicationTaskTag() 此函数是为高级用户准备的,此函数用于设置某个任务的标签值 ,这个标签值的具体函数和用法由用户自行决定,FreeRTOS 内核不会使用这个标签值

    2.2K30

    Linux Clone函数

    Linux Clone函数 之前某一次有过一次面试,问了内核中是怎么创建命名空间的? 下面就来扒一扒clone的精髓,以及如何通过它创建命名空间。...目录 Linux Clone函数 使用clone创建进程和线程 clone的使用 原型 描述 clone()封装函数 clone3() clone() 和clone3()参数的差异 子进程结束信号 set_tid...创建线程的函数pthread_create内部使用的也是clone函数。...在glibc的/sysdeps/unix/sysv/linux/createthread.c源码中可以看到,创建线程的函数create_thread中使用了clone函数,并指定了相关的flags:...它对API进行了一系列的提升,包括:附加标志位空间; 运用各种参数进行清理分离; 以及指定子堆栈区域大小的能力。 fork(2), clone3()会同时返回父进程和子进程。

    6.7K31

    Linux网络编程基础API

    好在Linux内核检测到TCP紧急标志时,将通知应用程序有带外数据需要接收。内核通知应用程序带外数据到达的两种常见方式是: 1O复用产生的异常事件和SIGURG信号。...对这种情况,Linux给开发人员提供的解决方案是:对监听socket设置这些socket选项,那么accept返回的连接socket将自动继承这些选项。...网络信息API 利用域名获取IP地址 IP地址比域名发生变更的概率要高,所以利用IP地址编写程序并非上策。...getaddrinfo getaddrinfo函数既能通过主机名获得IP地址(内部使用的是gethostbyname函数),也能通过服务名获得端口号(内部使用的是getservbyname函数)。...getnameinfo和getaddrinfo函数成功时返回0,失败时返回错误码,可能的错误码如表: Linux下strerror函数能将数值错误码error转换成易读的字符串形式,同样下面的函数可将表错误码转换成字符串形式

    1.4K20
    领券