Linux下的两个经典宏定义【转】】的更多相关文章

http://www.linuxidc.com/Linux/2016-08/134481.htm http://www.linuxidc.com/Linux/2013-01/78003.htm http://blog.csdn.net/npy_lp/article/details/7010752 http://www.linuxdiyf.com/viewarticle.php?id=104768 本文首先介绍Linux下的经典宏定义,感受极客的智慧,然后根据该经典定义为下篇文章作铺垫. offs…
转自:http://www.linuxidc.com/Linux/2015-07/120014.htm 本文首先介绍Linux下的经典宏定义,感受极客的智慧,然后根据该经典定义为下篇文章作铺垫. offsetof宏定义: // 获得结构体(TYPE)的变量成员(MEMBER)在此结构体中的偏移量.#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) 说明:获得结构体(TYPE)的变量成员(MEMBER)在此结构体中的偏移…
倘若你查看过Linux Kernel的源码,那么你对 offsetof 和 container_of 这两个宏应该不陌生.这两个宏最初是极客写出的,后来在Linux内核中被推广使用. 1. offsetof 1.1 offsetof介绍 定义:offsetof在linux内核的include/linux/stddef.h中定义.#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) 说明:获得结构体(TYPE)的变量成员(…
Linux 下启动两个tomcat 闲来无事学习nginx,想要配置个load balance.可是先决条件是:得有两个web容器.两个电脑是不用想了.只能想办法在一个机器上启动两个tomcat.原以为挺简单的,只要改改port就好了.谁知单单改port压根不会成功.网上找了很多解决方案,要么繁杂的要死,要么说的云里雾里的.于是决定结合网上的说法和自己的想法,重新写一个方案. 先说解决方案吧.(我用的是tomcat-7.0.62,安装的路径是/usr/local/apache-tomcat-7.…
Linux下配置两个或多个Tomcat启动 (2012-08-14 11:59:31) 转载▼ 标签: 杂谈 分类: linux_tomcat 步骤如下: (1)修改/etc/profile文件.添加一组java环境变量,和两组CATALINA环境变量(我没有进行此步骤的设置,可能因为我的Tomcat是免安装版的吧)记得修改完要使其生效,用命令:source /etc/profile JAVA_HOME=/usr/java/jdk1.7.0 PATH=$JAVA_HOME/bin:$PATH C…
如何使用fdisk和parted分区工具来进行硬盘分区,下面我来说一下在Linux系统中这两种硬盘分区工具的使用方法:     ----------fdisk分区工具----------        在我的另一篇文章里已经说过了在Linux系统中硬盘分区的概念了(http://blog.chinaunix.net/u3/112561/showart_2230401.html),所以在这里我就不多说了,有不懂的可以看看那篇 一..下面来介绍fdisk分区工具的命令格式:     fdisk是传统…
刚解决了之前的那个Linux下Pthread库的问题,这次就来使用两个线程来协作,共同完成一个求和的任务. 打一下基础吧 本次需要使用到的知识点有: lpthread,编译的时候用到,相当于一个声明的效果 pthread_mutex_t 作为一个锁对象而存在 pthread_create,创建一个新线程的函数调用 pthread_t ,线程的类型 代码展示 #include <stdio.h> #include <stdlib.h> //多线程库的引用 #include<pt…
背景介绍 随着固态存储技术 (SSD),SAS 技术的不断进步和普及,存储介质的种类更加多样,采用不同存储介质和接口的存储设备的性能出现了很大差异.SSD 相较于传统的机械硬盘,由于没有磁盘的机械转动,寻址速度大大提高,尤其在随机读写较多的应用环境下,性能会大大提升,但这些高性能存储设备的单位存储价格相对于传统的磁带和 SATA 硬盘也高出很多,如图 1 所示. 图 1 不同存储设备的性能价格对比 所以,如何高效平衡地利用这些存储设备,是所有存储厂商都在关注的问题.采用 Storage Tier…
转自:http://blog.csdn.net/tommy_wxie/article/details/9427081 一: __init和__initdata  : __exit和__exitdata __init和__initdata :仅用于模块初始化,在初始化结束后会丢弃,__init用来描述函数__initdata用来描述数据,比如说当内核启动完毕之后会打印如下语句Freeing unused kernel memory: 664k freed,多半就是__init宏和__initdat…
最近拿到一份源代码,要命的是这份源代码是浅克隆模式的git包,所以无法完整显示里面的修改的内容. 今天花了一点点时间,找了一个在Linux对比两个文件夹的方法. 其实方法很简单,用meld 去对比两个文件夹就行 在Ubuntu下 sudo apt-get install meld meld file1 file2 就是这么简单.…